use*_*966 8 python firefox selenium selenium-webdriver geckodriver
我遇到了与 FireFox 二进制文件相关的硒错误。
我使用反斜杠将 C:/Users/Mack/AppData/Local/Programs/Python/ 添加到 PATH 并重新启动。我在这里下载了我认为正确的文件https://github.com/mozilla/geckodriver/releases 我将该文件放在连接到 PATH 的目录中。
为了解决这个问题:我尝试使用两个反斜杠
binary = FirefoxBinary("C:\\Users\Mack\AppData\Local\Programs\Python\Python38-32\geckodriver-v0.27.0-win64\geckodriver.exe")
Run Code Online (Sandbox Code Playgroud)
这会引发相同的错误
我尝试使用一个反斜杠
binary = FirefoxBinary("C:\Users\Mack\AppData\Local\Programs\Python\Python38-32\geckodriver-v0.27.0-win64\geckodriver.exe")
Run Code Online (Sandbox Code Playgroud)
这会抛出:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
Traceback (most recent call last):
File "C:\Users\Mack\Desktop\hacker-stories\Trends.py", line 32, in <module>
browser = webdriver.Firefox(**firefox_binary=binary**)
File "C:\Users\Mack\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 170, in __init__
RemoteWebDriver.__init__(
File "C:\Users\Mack\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "C:\Users\Mack\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Users\Mack\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\Mack\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: Message: binary is not a Firefox executable
Run Code Online (Sandbox Code Playgroud)
代码测试.py
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary("C:/Users/Mack/AppData/Local/Programs/Python/Python38-32/geckodriver-v0.27.0-win64/geckodriver.exe")
print(binary)
browser = webdriver.Firefox(firefox_binary=binary)
options = Options()
options.set_preference("browser.download.folderList",2)
options.set_preference("browser.download.manager.showWhenStarting", False)
options.set_preference("browser.download.dir","/Data")
options.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream,application/vnd.ms-excel")
driver = webdriver.Firefox(firefox_options=options)
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助理解此错误的帮助。
这个错误信息...
selenium.common.exceptions.InvalidArgumentException: Message: binary is not a Firefox executable
Run Code Online (Sandbox Code Playgroud)
...意味着您作为参数传递给的二进制FirefoxBinary()
文件不是有效的Firefox可执行文件。
您似乎已将 的绝对路径作为导致错误的geckodriver.exe
参数传递。FirefoxBinary()
geckodriver.exe
您需要传递 的绝对路径,而不是firefox.exe
。此外,firefox_options
现在已弃用,您必须使用options
,并且可以使用以下解决方案:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
options = Options()
options.binary = FirefoxBinary(r'C:\Program Files\Mozilla Firefox\firefox.exe')
options.set_preference("browser.download.folderList",2)
options.set_preference("browser.download.manager.showWhenStarting", False)
options.set_preference("browser.download.dir","/Data")
options.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream,application/vnd.ms-excel")
driver = webdriver.Firefox(executable_path=r'C:/Users/Mack/AppData/Local/Programs/Python/Python38-32/geckodriver-v0.27.0-win64/geckodriver.exe', options=options)
Run Code Online (Sandbox Code Playgroud)
您可以在以下位置找到一些相关的详细讨论:
归档时间: |
|
查看次数: |
29938 次 |
最近记录: |