给定二进制路径的TOR Selenium Python抛出错误geckodriver可执行文件需要位于路径中

给定二进制路径的TOR Selenium Python抛出错误geckodriver可执行文件需要位于路径中,python,macos,selenium,geckodriver,tor,selenium3,Python,Macos,Selenium,Geckodriver,Tor,Selenium3,我正在查看并复制MacOS的代码(答案的顶部,为了方便起见也在下面复制) 我一直得到以下错误 Traceback (most recent call last): File "torselenium.py", line 22, in <module> browser = get_browser(binary=firefox_binary) File "torselenium.py", line 18, in get_browse

我正在查看并复制MacOS的代码(答案的顶部,为了方便起见也在下面复制)

我一直得到以下错误

Traceback (most recent call last):
  File "torselenium.py", line 22, in <module>
    browser = get_browser(binary=firefox_binary)
  File "torselenium.py", line 18, in get_browser
    browser = webdriver.Firefox(firefox_binary=binary)
  File "/Users/user/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
    self.service.start()
  File "/Users/user/Library/Python/2.7/lib/python/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. 
事实上,如果我将二进制路径(第7行)设置为
'~/Applications/TorBrowser.app/Contents/MacOS/firefox'
,它会给出
值error
,因此那里肯定有一个二进制文件

我也这样做了,我尝试将
浏览器
从全局变量更改为局部变量,改为无帮助


如何解决此错误?

看来您已经足够接近了。要通过驱动启动Mozilla Firefox浏览上下文,您必须下载最新版本并将其存储在系统中,并在启动Web浏览器会话时提及绝对路径,如下所示:

browser = webdriver.Firefox(firefox_binary=binary, executable_path='/usr/local/bin/geckodriver')
您可以在中找到详细的讨论


工具书类 您可以在以下位置找到关于WebDriverException的一些相关讨论:'geckodriver'可执行文件需要在路径中错误:


firefox
geckodriver
是两个不同的可执行文件。
command-v geckodriver
返回什么?如果未安装,
brew安装geckodriver
@hoefling
brew安装geckodriver
解决了我的问题。不知道为什么,因为我以前使用过selenium,我不认为我是用brew安装的-只是从Mozilla下载了可执行文件。您可以随意安装,从下载也可以,只要确保文件在PATH中即可。
$ ls /Applications/TorBrowser.app/Contents/MacOS/firefox
/Applications/TorBrowser.app/Contents/MacOS/firefox
browser = webdriver.Firefox(firefox_binary=binary, executable_path='/usr/local/bin/geckodriver')