Selenium Webdriver + geckodriver + python 2.6.6 + RedHat 6.8 上的 Firefox 无法打开浏览器
Selenium Webdriver + geckodriver + python 2.6.6 + Firefox on RedHat 6.8 fails to open browser
我在使用 python 的 Selenium Webdriver 成功启动 Firefox 浏览器时遇到问题。我有以下设置参数:
Selenium Webdriver 3.4.3
Python 2.6.6
geckodriver-v0.18.0-linux64.tar.gz
firefox-45.0.1.1.el6.x86_64
现在,geckodriver 文件已解压,目前位于 /usr/local/bin
目录中,其中 rwx 一直在:
rwxrwxrwx. 1 root root 7129173 Jul 26 14:42 geckodriver
我更新了 .bash_profile
以包含如下路径:
PATH=$PATH:$HOME/bin:/usr/local/bin/geckodriver
我使用的脚本来自 Selenium-3.4.3 目录 "README.rst".
中的自述文件
脚本名称:first_selenium_script.py
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
于是,结果如下,
Traceback (most recent call last):
File "first_selenium_script.py", line 3, in <module>
browser = webdriver.Firefox()
File "/usr/lib/python2.6/site- packages/selenium-3.4.3-py2.6.egg/selenium/webdriver/firefox/webdriver.py", line 152, in __init__
keep_alive=True)
File "/usr/lib/python2.6/site- packages/selenium-3.4.3-py2.6.egg/selenium/webdriver/remote/webdriver.py", line 98, in __init__
self.start_session(desired_capabilities, browser_profile)
File "/usr/lib/python2.6/site- packages/selenium-3.4.3-py2.6.egg/selenium/webdriver/remote/webdriver.py", line 188, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/lib/python2.6/site- packages/selenium-3.4.3-py2.6.egg/selenium/webdriver/remote/webdriver.py", line 256, in execute
self.error_handler.check_response(response)
File "/usr/lib/python2.6/site-packages/selenium-3.4.3-py2.6.egg/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilities
有什么想法请。 . .谢谢。
经过一些研究,我几乎可以肯定我的评论是正确的——FireFox 45 和 geckodriver 0.18 之间的版本不兼容。根据 geckodriver page:
v0.18.0
geckodriver now recommends Firefox 53 and greater
FireFox 45 似乎与 geckodriver 不兼容。 Geckodriver 于 2015 年 3 月 8 日 initially released on Apr 9, 2015, and Firefox 45 was released。
所以虽然可能有一些机会让它在旧的 geckodriver 上工作,但最好的选择实际上是将 FireFox 更新到 >= v53。
我在使用 python 的 Selenium Webdriver 成功启动 Firefox 浏览器时遇到问题。我有以下设置参数:
Selenium Webdriver 3.4.3
Python 2.6.6
geckodriver-v0.18.0-linux64.tar.gz
firefox-45.0.1.1.el6.x86_64
现在,geckodriver 文件已解压,目前位于 /usr/local/bin
目录中,其中 rwx 一直在:
rwxrwxrwx. 1 root root 7129173 Jul 26 14:42 geckodriver
我更新了 .bash_profile
以包含如下路径:
PATH=$PATH:$HOME/bin:/usr/local/bin/geckodriver
我使用的脚本来自 Selenium-3.4.3 目录 "README.rst".
中的自述文件脚本名称:first_selenium_script.py
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
于是,结果如下,
Traceback (most recent call last):
File "first_selenium_script.py", line 3, in <module>
browser = webdriver.Firefox()
File "/usr/lib/python2.6/site- packages/selenium-3.4.3-py2.6.egg/selenium/webdriver/firefox/webdriver.py", line 152, in __init__
keep_alive=True)
File "/usr/lib/python2.6/site- packages/selenium-3.4.3-py2.6.egg/selenium/webdriver/remote/webdriver.py", line 98, in __init__
self.start_session(desired_capabilities, browser_profile)
File "/usr/lib/python2.6/site- packages/selenium-3.4.3-py2.6.egg/selenium/webdriver/remote/webdriver.py", line 188, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/lib/python2.6/site- packages/selenium-3.4.3-py2.6.egg/selenium/webdriver/remote/webdriver.py", line 256, in execute
self.error_handler.check_response(response)
File "/usr/lib/python2.6/site-packages/selenium-3.4.3-py2.6.egg/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilities
有什么想法请。 . .谢谢。
经过一些研究,我几乎可以肯定我的评论是正确的——FireFox 45 和 geckodriver 0.18 之间的版本不兼容。根据 geckodriver page:
v0.18.0
geckodriver now recommends Firefox 53 and greater
FireFox 45 似乎与 geckodriver 不兼容。 Geckodriver 于 2015 年 3 月 8 日 initially released on Apr 9, 2015, and Firefox 45 was released。
所以虽然可能有一些机会让它在旧的 geckodriver 上工作,但最好的选择实际上是将 FireFox 更新到 >= v53。