From 9f2723caf338b148fa2b3ba8b7bb101f11e1c182 Mon Sep 17 00:00:00 2001 From: kaliiiiiiiiii Date: Tue, 3 Oct 2023 18:43:45 +0200 Subject: [PATCH 1/2] should fix https://github.com/kaliiiiiiiiii/Selenium-Driverless/discussions/78 --- src/selenium_driverless/sync/webelement.py | 8 -------- src/selenium_driverless/types/deserialize.py | 9 +++++++-- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/selenium_driverless/sync/webelement.py b/src/selenium_driverless/sync/webelement.py index b7f8203..70a462b 100644 --- a/src/selenium_driverless/sync/webelement.py +++ b/src/selenium_driverless/sync/webelement.py @@ -17,14 +17,6 @@ def __init__(self, target, isolated_exec_id:int or None, frame_id:int or None,ob isolated_exec_id=isolated_exec_id, frame_id=frame_id) self.__enter__() - @property - async def node_id(self): - if not self.__obj_id__: - await self.obj_id - return self._node_id - self._node_id = None - return await super().node_id - @property def class_name(self): return self._class_name diff --git a/src/selenium_driverless/types/deserialize.py b/src/selenium_driverless/types/deserialize.py index bb31f1d..53e21d5 100644 --- a/src/selenium_driverless/types/deserialize.py +++ b/src/selenium_driverless/types/deserialize.py @@ -42,10 +42,12 @@ def __hash__(self): @property def __target__(self): + # noinspection PyUnresolvedReferences return self.___target__ @property def __obj_id__(self): + # noinspection PyUnresolvedReferences return self.___obj_id__ @property @@ -55,16 +57,19 @@ def __context_id__(self): @property async def __frame_id__(self) -> int: + # noinspection PyUnresolvedReferences return self.___frame_id__ @property async def __isolated_exec_id__(self) -> int: + # noinspection PyUnresolvedReferences if not self.___isolated_exec_id__: res = await self.__target__.execute_cdp_cmd( "Page.createIsolatedWorld", {"frameId": await self.__frame_id__, "grantUniveralAccess": True, "worldName": "Isolated execution context with DOM-access, You got here hehe:)"}) super().__setattr__("___isolated_exec_id__", res["executionContextId"]) + # noinspection PyUnresolvedReferences return self.___isolated_exec_id__ async def __exec_raw__(self, script: str, *args, await_res: bool = False, serialization: str = None, @@ -143,7 +148,7 @@ async def __exec_raw__(self, script: str, *args, await_res: bool = False, serial if "exceptionDetails" in res.keys(): raise JSEvalException(res["exceptionDetails"]) res = res["result"] - # noinspection PyProtectedMember + # noinspection PyProtectedMember,PyUnresolvedReferences res = await parse_deep(deep=res.get('deepSerializedValue'), subtype=res.get('subtype'), class_name=res.get('className'), value=res.get("value"), description=res.get("description"), target=target, @@ -627,7 +632,7 @@ async def parse_deep(deep: dict, target, isolated_exec_id: int, frame_id: int, s _res = JSNodeList(obj_id=obj_id, target=target, class_name=class_name, isolated_exec_id=isolated_exec_id, frame_id=frame_id) for idx, _deep in enumerate(_value): - _res.append(await parse_deep(_deep, target, isolated_exec_id=isolated_exec_id, frame_id=frame_id)) + _res.append(await parse_deep(_deep, target, isolated_exec_id=isolated_exec_id, frame_id=frame_id, loop=loop)) return _res elif _type == "window": return JSWindow(context=_value.get("context"), obj_id=obj_id, target=target, isolated_exec_id=isolated_exec_id, From 1b9adb5a19bc8b10d04bb6b107a7e9d92d878f14 Mon Sep 17 00:00:00 2001 From: kaliiiiiiiiii Date: Tue, 3 Oct 2023 18:54:43 +0200 Subject: [PATCH 2/2] version patch (sync webelement deserialisation) --- src/selenium_driverless/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/selenium_driverless/__init__.py b/src/selenium_driverless/__init__.py index 9bef047..f49459c 100644 --- a/src/selenium_driverless/__init__.py +++ b/src/selenium_driverless/__init__.py @@ -1 +1 @@ -__version__ = "1.6" +__version__ = "1.6.1"