在 selenium 中创建 firefox 会话时出错

Posted

技术标签:

【中文标题】在 selenium 中创建 firefox 会话时出错【英文标题】:Error in creating a firefox session in selenium 【发布时间】:2018-06-10 23:01:53 【问题描述】:

我是 selenium 库的新手,请帮助我解决此错误以使用 selenium 启动 firefox 会话。

这是我目前的代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

# create a new Firefox session
driver = webdriver.Firefox()

发生的错误是

Traceback(最近一次调用最后一次):文件 "C:\Users\yash\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", 第 74 行,在 start stdout=self.log_file, stderr=self.log_file) 文件中 "C:\Users\yash\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", 第 707 行,在 __init__restore_signals, start_new_session) 文件中 "C:\Users\yash\AppData\Local\Programs\Python\Python36-2\lib\subprocess.py", 第 990 行,在 _execute_child 启动信息中)FileNotFoundError:[WinError 2] 系统找不到指定的文件

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次):文件 “A:\python\webscraping\seltry.py”,第 5 行,在驱动程序 = webdriver.Firefox() 文件 "C:\Users\yash\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\firefox\webdriver.py", 第 148 行,在 init self.service.start() 文件中 "C:\Users\yash\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", 第 81 行,在 start os.path.basename(self.path) 中, self.start_error_message) selenium.common.exceptions.WebDriverException:消息:'geckodriver' 可执行文件需要在 PATH 中。

请帮忙!

【问题讨论】:

Selenium using Python - Geckodriver executable needs to be in PATH的可能重复 selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH error with chrome的可能重复 【参考方案1】:

错误:selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH. 几乎解释了这一点。你可以跟着这个教程Selenium using Python - Geckodriver executable needs to be in PATH

并且请在提问之前研究您的问题,因为我认为这可能被某些人认为是重复的。

【讨论】:

这是重复的,应该这样标记而不是回答它,这样我们就不会得到很多重复,它们会被清理掉。

以上是关于在 selenium 中创建 firefox 会话时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 Selenium 3.0 (Geckodriver) 创建临时 Firefox 配置文件?

如何在 Python + Selenium 中创建随机用户代理?

CreateProcessAsUser 在活动会话中创建窗口

在firefox v60.0.2中创建sdf提供错误(WebRTC,Firefox)

从服务的用户会话中创建进程

从用户会话进程打开在服务中创建的 JobObject