我正在使用IDLE,并且已经安装了selenium模块和Firefox浏览器。每当我尝试运行webdriver函数时,都会得到以下信息:
Firefox
webdrive
from selenium import webdriver browser = webdriver.Firefox()
例外:
Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0DA1080>> Traceback (most recent call last): File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__ self.stop() File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop if self.process is None: AttributeError: 'Service' object has no attribute 'process' Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0E08128>> Traceback (most recent call last): File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__ self.stop() File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop if self.process is None: AttributeError: 'Service' object has no attribute 'process' Traceback (most recent call last): File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 64, in start stdout=self.log_file, stderr=self.log_file) File "C:\Python\Python35\lib\subprocess.py", line 947, in __init__ restore_signals, start_new_session) File "C:\Python\Python35\lib\subprocess.py", line 1224, in _execute_child startupinfo) FileNotFoundError: [WinError 2] The system cannot find the file specified During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<pyshell#11>", line 1, in <module> browser = webdriver.Firefox() File "C:\Python\Python35\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 135, in __init__ self.service.start() File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 71, in start os.path.basename(self.path), self.start_error_message) selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
我想我需要设置路径,geckodriver但不确定如何设置,所以谁能告诉我该怎么做?
selenium.common.exceptions.WebDriverException:消息:“ geckodriver”可执行文件必须位于PATH中。
selenium.common.exceptions.WebDriverException
“ geckodriver”
首先,你需要从此处下载最新的可执行geckodriver,以使用硒运行最新的Firefox。
实际上,Selenium客户端绑定试图geckodriver从系统中找到可执行文件PATH。你将需要将包含可执行文件的目录添加到系统路径。
Selenium
geckodriver
在Unix系统上,如果使用的是与bash兼容的shell,则可以执行以下操作将其附加到系统的搜索路径中:
export PATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step
在Windows上,你将需要更新Path系统变量以 手动或命令行将完整目录路径添加到可执行geckodriver (不要忘记在将可执行geckodriver添加到系统PATH中生效后重新启动系统)。其原理与Unix相同。
现在,你可以按照以下步骤运行代码:-
selenium.common.exceptions.WebDriverException:消息:预期的浏览器二进制位置,但无法在默认位置找到二进制位置,未提供’moz:firefoxOptions.binary’功能,并且命令行上未设置二进制标志
selenium.common.exceptions.WebDriverException:
异常清楚地表明你在Selenium试图查找Firefox并从默认位置启动时在其他位置安装了Firefox,但找不到。你需要提供明确安装了firefox的二进制位置才能启动firefox,如下所示:
from selenium import webdriver from selenium.webdriver.firefox.firefox_binary import FirefoxBinary binary = FirefoxBinary('path/to/installed firefox binary') browser = webdriver.Firefox(firefox_binary=binary)