Skip to content

Commit 56e5d59

Browse files
authored
Add Cookie class (#47)
2 parents d4a6f07 + f14fb14 commit 56e5d59

File tree

4 files changed

+19
-9
lines changed

4 files changed

+19
-9
lines changed

doc/manager.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ from selenium.webdriver import Chrome
6161
from selenium.webdriver.chrome.service import Service
6262

6363
webdriver = Chrome(Service(executable_path="/opt/chromedriver"))
64-
request = WebDriverRequest()
65-
manager.introduce_webdriver(webdriver, request)
64+
# Make sure you update your webdriver reference
65+
webdriver = manager.introduce_webdriver(webdriver, WebDriverRequest())
6666
```
6767
You can also use the [WebDriverManagerListener interface](listeners.md).
6868

paf/common.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from datetime import datetime
44
from enum import Enum
55
from time import sleep, time
6-
from typing import Callable, Self
6+
from typing import Callable, Self, TypedDict, Literal
77

88
import inject
99

@@ -307,5 +307,15 @@ def __str__(self):
307307
return f"{prefix}after {self._count} retries ({round(self._duration, 2)} seconds)"
308308

309309

310+
class Cookie(TypedDict, total=False):
311+
domain: str
312+
expiry: int
313+
httpOnly: bool
314+
name: str
315+
path: str
316+
sameSite: Literal["Strict", "Lax", "None"]
317+
secure: bool
318+
value: str
319+
310320
def inject_config(binder: inject.Binder):
311321
binder.bind(Formatter, Formatter())

paf/manager.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from selenium.webdriver.common.options import BaseOptions
1010
from selenium.webdriver.remote.webdriver import WebDriver, BaseWebDriver
1111

12-
from paf.common import Property, Formatter
12+
from paf.common import Property, Formatter, Cookie
1313
from paf.listener import WebDriverManagerListener
1414
from paf.request import WebDriverRequest
1515

@@ -156,8 +156,6 @@ def webdrivers(self) -> List[WebDriver]:
156156
return list(self._session_driver_map.values())
157157

158158
def get_request_name(self, webdriver: WebDriver):
159-
#if isinstance(webdriver, EventFiringWebDriver):
160-
# webdriver = webdriver.wrapped_driver
161159
return webdriver.capabilities.get("paf:requestName")
162160

163161
def __set_request_name(self, webdriver: WebDriver, request: WebDriverRequest):

test/test_manager.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import asyncio
2+
import math
23
import os
34
import shutil
45
from pathlib import Path
@@ -10,14 +11,16 @@
1011
from selenium.webdriver.remote.webdriver import WebDriver
1112
from selenium.webdriver.support.abstract_event_listener import AbstractEventListener
1213

13-
from paf.common import Property, Size, Rect, Point
14+
from paf.common import Property, Size, Rect, Point, Cookie
1415
from paf.listener import WebDriverManagerListener
1516
from paf.manager import WebDriverManager
1617
from paf.page import PageFactory, FinderPage
1718
from paf.request import WebDriverRequest
1819
from test import get_webdriver, finder, page_factory, test_uielement
1920
import paf.config
2021
from selenium.webdriver.support.event_firing_webdriver import EventFiringWebDriver
22+
from datetime import datetime as dt
23+
import datetime
2124

2225
@pytest.fixture
2326
def manager():
@@ -218,7 +221,7 @@ def _inject(binder: inject.Binder):
218221
assert listener.introduce_called == False
219222
assert listener.introduced_called == False
220223

221-
def test_event_firing_webdriver(page_factory: PageFactory):
224+
def test_event_firing_webdriver(manager: WebDriverManager, page_factory: PageFactory):
222225
class EventFiringWebDriverListener(WebDriverManagerListener, AbstractEventListener):
223226
def __init__(self):
224227
self.close_called = False
@@ -245,7 +248,6 @@ def _inject(binder: inject.Binder):
245248
inject.clear_and_configure(_inject)
246249
listener: EventFiringWebDriverListener = inject.instance(WebDriverManagerListener)
247250
request = WebDriverRequest("events")
248-
manager = inject.instance(WebDriverManager)
249251
webdriver = get_webdriver(request)
250252
assert isinstance(webdriver, EventFiringWebDriver)
251253
assert manager.get_request_name(webdriver) == request.name

0 commit comments

Comments
 (0)