Bug#940992: firefoxdriver: does not work with firefox > 47 at all
Package: firefoxdriver
Version: 3.14.1-1
Severity: grave
Justification: unusable by everyone
This is what happens when you try to use firefoxdriver in the most
obvious way from python on buster:
| $ dpkg -l python3-selenium
| ...
| ii python3-selenium 3.14.1+dfsg1-1 all Python3 bindings for Selenium
| $ python3
| Python 3.7.3 (default, Apr 3 2019, 05:39:12)
| [GCC 8.3.0] on linux
| Type "help", "copyright", "credits" or "license" for more information.
| >>> import selenium.webdriver
| >>> selenium.webdriver.Firefox()
| Traceback (most recent call last):
| File "/usr/lib/python3/dist-packages/selenium/webdriver/common/service.py", line 76, in start
| stdin=PIPE)
| File "/usr/lib/python3.7/subprocess.py", line 775, in __init__
| restore_signals, start_new_session)
| File "/usr/lib/python3.7/subprocess.py", line 1522, in _execute_child
| raise child_exception_type(errno_num, err_msg, err_filename)
| FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver': 'geckodriver'
|
| During handling of the above exception, another exception occurred:
|
| Traceback (most recent call last):
| File "<stdin>", line 1, in <module>
| File "/usr/lib/python3/dist-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
| self.service.start()
| File "/usr/lib/python3/dist-packages/selenium/webdriver/common/service.py", line 83, in start
| os.path.basename(self.path), self.start_error_message)
| selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
|
| >>>
A little research reveals that this problem already has surfaced
elsewhere e.g. at
https://askubuntu.com/questions/1104721/sudo-apt-install-firefoxdriver-does-what.
A more detailed answer at
https://stackoverflow.com/questions/43272919/difference-between-webdriver-firefox-marionette-webdriver-gecko-driver/43920453
indicates that the extenstion-powered method employed by firefoxdriver
only works until firefox 47. Later versions need "marionette" which
usually manifestst as "geckodriver" which is missing from the
firefoxdriver package.
Given that even old-old-stable has firefox 52 already, I think we can
safely conclude that the present firefoxdriver is broken for everyone.
For unstable, I guess geckodriver needs to be packaged. For buster it
may be best to simply remove the package in a point release.
Also an autopkgtest would be a very good addition for this package to
catch similar issues earlier.
Helmut
Reply to: