我已经创建了一个使用python在Eclipse中打开url的测试脚本,并得到了以下错误:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 76, in start
stdin=PIPE)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 769, in __init__
restore_signals, start_new_session)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 1516, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver': 'geckodriver'在处理上述异常的过程中,发生了另一个异常:
Traceback (most recent call last):
File "/Applications/Eclipse.app/Contents/MacOS/C:\EclipseWorkspaces\csse120/PythonSeleniumProject/src/PythonSeleniumModule.py", line 13, in <module>
driver = webdriver.Firefox()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
self.service.start()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-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. 我读过关于相关主题的堆叠溢出,但是没有一个能回答/解决我的问题。
请给我建议。谢谢。
发布于 2018-10-24 10:09:49
这个错误信息..。
FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver': 'geckodriver'
.
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH. ...implies表示您的程序无法在上述目录中找到GeckoDriver。
根据您使用的代码测试:
driver = webdriver.Firefox()由于您没有显式地提到GeckoDriver的绝对路径,所以程序在基础操作系统路径变量中提到的路径中搜索GeckoDriver,并且无法定位。
解决方案
executable_path覆盖操作系统路径变量中提到的路径,如下所示:
从selenium导入webdriver = webdriver.Firefox(executable_path='/path/to/geckodriver') print("Firefox调用“) driver.get('http://google.com/') driver.quit()发布于 2020-03-10 12:53:03
根据您所选择的绝对路径,上述解决方案不会在每台机器上工作。此外,可以通过任何程序访问的绝对路径,例如根文件夹,都需要管理权限。
存在的每个Selenium WebDriver都有一个DriverManager模块,您可以使用它自动在PATH变量内的目录中安装WebDriver。
只安装一次是很重要的。再做一次就会导致错误,我还没有找到克服这些错误的方法。
首先,如果您使用的是pip install webdriver-manager或pip3,请在Python3环境中安装webdriver。
在您的代码上这样做,它会运行得很好:
from webdriver_manager.firefox import GeckoDriverManager
try:
driver = webdriver.Firefox()
except Exception:
driver = webdriver.Firefox(GeckoDriverManager().install())因此,它将只安装一次在机器上使用该程序。
注意:这与OperaDriver有一些问题。
https://stackoverflow.com/questions/52960368
复制相似问题