selenium: [py] set_page_load_timeout() crashes with firefox: unknown field `sessionId` (v61 → v62 regression)

Meta -

OS: Fedora 28 Selenium Version: 3.14 Browser: Firefox Browser Version: v62.0 selenium-python version: 3.7.0-3.fc28

Steps to reproduce -

Run selenium in containers (current :3 tag points to 3.14.0):

 docker run -d -p 4444:4444 --name selenium-hub selenium/hub:3
 docker run -d --link selenium-hub:hub selenium/node-firefox:3

Things generally work with Python:

# python
>>> import selenium.webdriver
>>> driver = selenium.webdriver.Remote(command_executor='http://10.111.112.10:4444/wd/hub', desired_capabilities={'browserName': 'firefox'})
>>> driver
<selenium.webdriver.remote.webdriver.WebDriver (session="975c7096-105b-436e-a5b5-6506ed332bcb")>
>>> driver.get_window_size()
{'width': 1224, 'height': 918}
>>> driver.set_window_size(1400, 1200)
>>> driver.get_window_size()
{'width': 1400, 'height': 1200}

But trying to call set_page_load_timeout() fails:

>>> driver.set_page_load_timeout(90)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 830, in set_page_load_timeout
    'type': 'page load'})
  File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 308, in execute
    self.error_handler.check_response(response)
  File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown field `sessionId`, expected one of `implicit`, `pageLoad`, `script` at line 1 column 12

This does not happen with other drivers like selenium/node-chrome:3 or MS Edge (https://docs.microsoft.com/en-us/microsoft-edge/webdriver), and it also still works with the (ancient) selenium/node-firefox:2.53.1.

The code around “def execute()” and “def set_page_load_timeout” doesn’t seem to have changed at all in current upstream master: https://github.com/SeleniumHQ/selenium/blob/master/py/selenium/webdriver/remote/webdriver.py

So somehow firefox doesn’t stomach the extra sessionId parameter that execute() adds.

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 16 (9 by maintainers)

Most upvoted comments

Yes, I can recreate a similar error when using selenium python bindings 3.7. Please upgrade. I’m guessing it has something to do with https://github.com/SeleniumHQ/selenium/commit/e6c2e7069c10852917846231439eeb807cd2e821#diff-6f9f8008b5e139c03e64fedabf4b3122