Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions doc/manager.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ from selenium.webdriver import Chrome
from selenium.webdriver.chrome.service import Service

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

Expand Down
12 changes: 11 additions & 1 deletion paf/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from datetime import datetime
from enum import Enum
from time import sleep, time
from typing import Callable, Self
from typing import Callable, Self, TypedDict, Literal

import inject

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


class Cookie(TypedDict, total=False):
domain: str
expiry: int
httpOnly: bool
name: str
path: str
sameSite: Literal["Strict", "Lax", "None"]
secure: bool
value: str

def inject_config(binder: inject.Binder):
binder.bind(Formatter, Formatter())
4 changes: 1 addition & 3 deletions paf/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from selenium.webdriver.common.options import BaseOptions
from selenium.webdriver.remote.webdriver import WebDriver, BaseWebDriver

from paf.common import Property, Formatter
from paf.common import Property, Formatter, Cookie
from paf.listener import WebDriverManagerListener
from paf.request import WebDriverRequest

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

def get_request_name(self, webdriver: WebDriver):
#if isinstance(webdriver, EventFiringWebDriver):
# webdriver = webdriver.wrapped_driver
return webdriver.capabilities.get("paf:requestName")

def __set_request_name(self, webdriver: WebDriver, request: WebDriverRequest):
Expand Down
8 changes: 5 additions & 3 deletions test/test_manager.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import asyncio
import math
import os
import shutil
from pathlib import Path
Expand All @@ -10,14 +11,16 @@
from selenium.webdriver.remote.webdriver import WebDriver
from selenium.webdriver.support.abstract_event_listener import AbstractEventListener

from paf.common import Property, Size, Rect, Point
from paf.common import Property, Size, Rect, Point, Cookie
from paf.listener import WebDriverManagerListener
from paf.manager import WebDriverManager
from paf.page import PageFactory, FinderPage
from paf.request import WebDriverRequest
from test import get_webdriver, finder, page_factory, test_uielement
import paf.config
from selenium.webdriver.support.event_firing_webdriver import EventFiringWebDriver
from datetime import datetime as dt
import datetime

@pytest.fixture
def manager():
Expand Down Expand Up @@ -218,7 +221,7 @@ def _inject(binder: inject.Binder):
assert listener.introduce_called == False
assert listener.introduced_called == False

def test_event_firing_webdriver(page_factory: PageFactory):
def test_event_firing_webdriver(manager: WebDriverManager, page_factory: PageFactory):
class EventFiringWebDriverListener(WebDriverManagerListener, AbstractEventListener):
def __init__(self):
self.close_called = False
Expand All @@ -245,7 +248,6 @@ def _inject(binder: inject.Binder):
inject.clear_and_configure(_inject)
listener: EventFiringWebDriverListener = inject.instance(WebDriverManagerListener)
request = WebDriverRequest("events")
manager = inject.instance(WebDriverManager)
webdriver = get_webdriver(request)
assert isinstance(webdriver, EventFiringWebDriver)
assert manager.get_request_name(webdriver) == request.name
Expand Down
Loading