1

我正在尝试使用 Selenium 的网络驱动程序访问网页,但无论我使用哪种浏览器(Opera/Firefox/GoogleChrome),我都无法访问该网页。

在任何情况下,浏览器都会弹出并挂在那里,不访问任何 URL。

当我尝试运行我的脚本时,我得到

selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service /usr/bin/[opera/chrome]

如果我使用 Firefox,我会得到:

selenium.common.exceptions.WebDriverException: Message: Service /usr/bin/firefox unexpectedly exited. Status code was: 0

我的代码:

browser = webdriver.Firefox(executable_path=FIREFOX_PATH)

browser.get('www.google.com')
r = BeautifulSoup(browser.page_source, PARSER)
print(r.text)

我正在使用带有 python3.6 的 Linux Ubuntu 18.04

4

1 回答 1

1

由于您使用 . 创建了 webdriver executable_path=FIREFOX_PATH,我认为您可能混淆了 Firefox 二进制文件和 geckodriver 二进制文件的路径的关键字参数。webdriver.Firefox期望:

  • firefox_binary– FirefoxBinary 实例或 Firefox 二进制文件的完整路径。如果未定义,将使用系统默认的 Firefox 安装。
  • executable_path– 覆盖用于 Firefox 47.0.1 及更高版本的 geckodriver 二进制文件的完整路径,默认为从系统路径中获取二进制文件。

因此,对于 Firefox 二进制文件firefox,您需要设置关键字参数firefox_binary。对于 geckodriver 二进制文件geckodriver,您需要设置关键字参数executable_path


您是否甚至想要/需要使用默认二进制文件以外的其他文件?你能跑吗

firefox --version

geckodriver --version

在你的终端没有问题?然后你不需要设置firefox_binary或根本不需要executable_path

于 2019-01-04T21:50:21.017 回答