Firefox更新后无法使用Selenium打开浏览器

Firefox更新后无法使用Selenium打开浏览器

我在UbuntuDesktop 16.04上使用Selenium WebDriver,我无法打开浏览器。在Firefox更新之后,我得到了以下错误(在此之前,这一切都成功了):

Traceback (most recent call last):
  File "test.py", line 6, in <module>
    driver = webdriver.Firefox()
  File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/webdriver.py", line 81, in __init__
    self.binary, timeout)
  File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 51, in __init__
    self.binary.launch_browser(self.profile, timeout=timeout)
  File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 68, in launch_browser
    self._wait_until_connectable(timeout=timeout)
  File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 98, in _wait_until_connectable
    raise WebDriverException("The browser appears to have exited "
selenium.common.exceptions.WebDriverException: Message: The browser appears to have exited before we could connect. 
If you specified a log_file in the FirefoxBinary constructor, check it for details.



慕慕森
浏览 1323回答 3
3回答

12345678_0001

从Firefox47.0版本(它刚刚发布了一段时间)开始,必须使用一个新的驱动程序(由Mozilla而不是Selenium创建)来连接到Firefox,因为这个版本引入了一个bug。从Firefox48.0版本开始,旧的驱动程序将被完全废弃,只能使用Marionette,所以现在切换比较好。见:火狐的木偶网络驱动程序下载司机(在OSX中只需使用brew install geckodriver),将可执行文件重命名为wires.exe在窗户上,或wires在*nix系统上,并确保系统路径中存在可执行文件,然后使用以下命令在程序中使用此驱动程序而不是旧驱动程序:使用本地Web驱动程序时:Python:firefox_capabilities&nbsp;=&nbsp;DesiredCapabilities.FIREFOX firefox_capabilities['marionette']&nbsp;=&nbsp;Truedriver&nbsp;=&nbsp;webdriver.Firefox(capabilities=firefox_capabilities)红宝石:driver&nbsp;=&nbsp;Selenium::WebDriver.for&nbsp;:firefox,&nbsp;marionette:&nbsp;trueJavaScript:var&nbsp;capabilities&nbsp;=&nbsp;Capabilities.firefox();capabilities.set('marionette',&nbsp;true); var&nbsp;driver&nbsp;=&nbsp;new&nbsp;webdriver.Builder().withCapabilities(capabilities).build();Java:DesiredCapabilities&nbsp;capabilities&nbsp;=&nbsp;DesiredCapabilities.firefox();capabilities.setCapability("marionette",&nbsp;true); Webdriver&nbsp;driver&nbsp;=&nbsp;new&nbsp;FirefoxDriver(capabilities);C#:var&nbsp;driver&nbsp;=&nbsp;new&nbsp;FirefoxDriver(new&nbsp;FirefoxOptions());使用Selenium网格时:当使用Selenium网格时,驱动程序应该出现在网格中所有机器的路径中。Python:firefox_capabilities&nbsp;=&nbsp;DesiredCapabilities.FIREFOX firefox_capabilities['marionette']&nbsp;=&nbsp;Truedriver&nbsp;=&nbsp;webdriver.Firefox(capabilities=firefox_capabilities)红宝石:caps&nbsp;=&nbsp;Selenium::WebDriver::Remote::Capabilities.firefox&nbsp;marionette:&nbsp;true driver&nbsp;=&nbsp;Selenium::WebDriver.for&nbsp;:firefox,&nbsp;desired_capabilities:&nbsp;capsJava:DesiredCapabilities&nbsp;capabilities&nbsp;=&nbsp;DesiredCapabilities.firefox(); //&nbsp;Set&nbsp;Marionette&nbsp;on&nbsp;so&nbsp;the&nbsp;Grid&nbsp;will&nbsp;use&nbsp;this&nbsp;instead&nbsp;of&nbsp;normal&nbsp;FirefoxDrivercapabilities.setCapability("marionette",&nbsp;true); WebDriver&nbsp;driver&nbsp;=&nbsp;new&nbsp;RemoteWebDriver(capabilities);C#:DesiredCapabilities&nbsp;capabilities&nbsp;=&nbsp;DesiredCapabilities.Firefox(); //&nbsp;Set&nbsp;Marionette&nbsp;on&nbsp;so&nbsp;the&nbsp;Grid&nbsp;will&nbsp;use&nbsp;this&nbsp;instead&nbsp;of&nbsp;normal&nbsp;FirefoxDrivercapabilities.SetCapability("marionette",&nbsp;true); var&nbsp;driver&nbsp;=&nbsp;new&nbsp;RemoteWebDriver(capabilities);

慕妹3242003

固定:此时的解决方案是降级Firefox!运行此命令以获得可用Firefox版本的列表。apt-cache&nbsp;show&nbsp;firefox&nbsp;|&nbsp;grep&nbsp;Version我的结果是:Version:&nbsp;47.0+build3-0ubuntu0.16.04.1 Version:&nbsp;45.0.2+build1-0ubuntu1安装:sudo&nbsp;apt-get&nbsp;install&nbsp;firefox=45.0.2+build1-0ubuntu1若要保留此版本并不允许更新,请执行以下操作:sudo&nbsp;apt-mark&nbsp;hold&nbsp;firefox如果您想要取消Firefox版本并允许更新:sudo&nbsp;apt-mark&nbsp;unhold&nbsp;firefox sudo&nbsp;apt-get&nbsp;upgrade

梦里花落0921

有些人的问题是buttonS或select无法在marionette手法。另一种选择是使用旧版本的Firefox:您可以下载二进制文件。这里在这里使用:from&nbsp;selenium&nbsp;import&nbsp;webdriver from&nbsp;selenium.webdriver.firefox.firefox_binary&nbsp;import&nbsp;FirefoxBinary binary&nbsp;=&nbsp;FirefoxBinary('path/to/binary') driver&nbsp;=&nbsp;webdriver.Firefox(firefox_binary=binary)
打开App,查看更多内容
随时随地看视频慕课网APP