以下是我的环境:
- 操作系统:Windows 10 - 64(家庭版)
- 浏览器:Firefox 47.0.1(32 位)
- Python:2.7.10.12(64 位)
- 硒:3.0.1
- 壁虎驱动:geckodriver-v0.11.1-win64.zip
Firefox 安装在C:\Program Files (x86)\Mozilla Firefox
.
geckodriver.exe 放置在C:\Python27\Scripts
位置。
以下是我的python代码:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.python.org")
这给出了以下错误:
Traceback (most recent call last):
File "examples1.py", line 5, in <module>
driver = webdriver.Firefox()
File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 152, in __init__
keep_alive=True)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 92, in __init__
self.start_session(desired_capabilities, browser_profile)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 179, in start_session
response = self.execute(Command.NEW_SESSION, capabilities)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 236, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 192, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line
我的问题是,虽然 firefox 安装在默认位置,但 webdriver 无法找到它并引发错误。
注意:当我如下明确指定 Firefox 二进制位置时,它正在工作。
binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary)