Closed vannman closed 2 months ago
probably due to a url//page load. I'll see if I can reproduce it & try to make it racing-condition safe
Not sure if this is useful, but here is another log from an error I am getting:
2024-02-27 17:35:54,275 - ERROR - default_exception_handler - Task exception was never retrieved
future: <Task finished name='Task-699' coro=<Target.execute_cdp_cmd() done, defined at /Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/selenium_driverless/types/target.py:902> exception=ConnectionClosedError(None, Close(code=<CloseCode.MESSAGE_TOO_BIG: 1009>, reason=''), None)>
Traceback (most recent call last):
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/legacy/protocol.py", line 963, in transfer_data
message = await self.read_message()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/legacy/protocol.py", line 1033, in read_message
frame = await self.read_data_frame(max_size=self.max_size)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/legacy/protocol.py", line 1108, in read_data_frame
frame = await self.read_frame(max_size)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/legacy/protocol.py", line 1165, in read_frame
frame = await Frame.read(
^^^^^^^^^^^^^^^^^
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/legacy/framing.py", line 107, in read
new_frame = extension.decode(new_frame, max_size=max_size)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/extensions/permessage_deflate.py", line 133, in decode
raise exceptions.PayloadTooBig(f"over size limit (? > {max_size} bytes)")
websockets.exceptions.PayloadTooBig: over size limit (? > 1048576 bytes)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/selenium_driverless/types/target.py", line 923, in execute_cdp_cmd
result = await self.socket.exec(method=cmd, params=cmd_args, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/cdp_socket/socket.py", line 73, in exec
_id = await self.send(method=method, params=params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/cdp_socket/socket.py", line 67, in send
await self._ws.send(json.dumps(_dict))
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/legacy/protocol.py", line 635, in send
await self.ensure_open()
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/legacy/protocol.py", line 939, in ensure_open
raise self.connection_closed_exc()
websockets.exceptions.ConnectionClosedError: sent 1009 (message too big); no close frame received
2024-02-27 17:35:54,278 - ERROR - default_exception_handler - Task exception was never retrieved
future: <Task finished name='Task-704' coro=<Target.execute_cdp_cmd() done, defined at /Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/selenium_driverless/types/target.py:902> exception=ConnectionClosedError(None, Close(code=<CloseCode.MESSAGE_TOO_BIG: 1009>, reason=''), None)>
Traceback (most recent call last):
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/legacy/protocol.py", line 963, in transfer_data
message = await self.read_message()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/legacy/protocol.py", line 1033, in read_message
frame = await self.read_data_frame(max_size=self.max_size)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/legacy/protocol.py", line 1108, in read_data_frame
frame = await self.read_frame(max_size)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/legacy/protocol.py", line 1165, in read_frame
frame = await Frame.read(
^^^^^^^^^^^^^^^^^
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/legacy/framing.py", line 107, in read
new_frame = extension.decode(new_frame, max_size=max_size)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/extensions/permessage_deflate.py", line 133, in decode
raise exceptions.PayloadTooBig(f"over size limit (? > {max_size} bytes)")
websockets.exceptions.PayloadTooBig: over size limit (? > 1048576 bytes)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/selenium_driverless/types/target.py", line 923, in execute_cdp_cmd
result = await self.socket.exec(method=cmd, params=cmd_args, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/cdp_socket/socket.py", line 73, in exec
_id = await self.send(method=method, params=params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/cdp_socket/socket.py", line 67, in send
await self._ws.send(json.dumps(_dict))
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/legacy/protocol.py", line 635, in send
await self.ensure_open()
File "/Users/ian/PycharmProjects/INA/venv/lib/python3.12/site-packages/websockets/legacy/protocol.py", line 939, in ensure_open
raise self.connection_closed_exc()
websockets.exceptions.ConnectionClosedError: sent 1009 (message too big); no close frame received
I suspect the second error is caused by driver.page_source returning payload greater than 1 MB in size which websockets does not allow.
Changing in webdriver.py:
self._max_ws_size = max_ws_size
to:
self._max_ws_size = 99999999999999
solved the problem. No more errors.
Changing in webdriver.py:
self._max_ws_size = max_ws_size
to:
self._max_ws_size = 99999999999999
solved the problem. No more errors.
you can just pass that as an argument, see documentation
To be honest I'm finding it a bit difficult to understand the documentation. Do I set it when initiating the driver somehow?Could you give an example?
To be honest I'm finding it a bit difficult to understand the documentation. Do I set it when initiating the driver somehow?Could you give an example?
https://kaliiiiiiiiii.github.io/Selenium-Driverless/classes/Chrome/#webdriver-chrome
by default:
webdriver.Chrome(options=None, timeout=30, debug=False, max_ws_size=2**27*)
This code:
results in the following error:
It works with other sections on the same site.