我在Ubuntu桌面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.
解决方案:将Firefox升级到47.0.1,将Selenium升级到2.53.1。
这种组合对我很有效。
有关更多详细信息,请参阅https://stackoverflow.com/a/37728659/6469532
修正:目前的解决方案是降级Firefox!运行此命令以获取可用Firefox版本的列表。
apt-cache show firefox | grep Version
我的结果是:
Version: 47.0+build3-0ubuntu0.16.04.1
Version: 45.0.2+build1-0ubuntu1
安装:
sudo apt-get install firefox=45.0.2+build1-0ubuntu1
要保留此版本并禁止更新,请执行以下操作:
sudo apt-mark hold firefox
sudo apt-mark unhold firefox
sudo apt-get upgrade
从Firefox 47.0版(刚推出不久)开始,必须使用一个新的驱动程序(由mozilla而不是selenium创建)来连接Firefox,因为该版本中引入了一个bug。从Firefox 48.0版开始,旧的驱动程序将被完全弃用,只能使用木偶,所以最好现在就切换。请参阅:Firefox的木偶网络驱动程序
下载驱动程序(在OSX中只需使用brew安装geckodriver
),将可执行文件重命名为wires。在windows上执行
,或在*nix系统上连接,并确保可执行文件存在于系统路径中,然后在程序中使用此驱动程序,而不是旧的驱动程序,方法如下:
使用本地webdriver时:
蟒蛇:
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
driver = webdriver.Firefox(capabilities=firefox_capabilities)
红宝石:
driver = Selenium::WebDriver.for :firefox, marionette: true
Javascript:
var capabilities = Capabilities.firefox();
capabilities.set('marionette', true);
var driver = new webdriver.Builder().withCapabilities(capabilities).build();
爪哇:
java prettyprint-override">DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
Webdriver driver = new FirefoxDriver(capabilities);
C#:
var driver = new FirefoxDriver(new FirefoxOptions());
使用硒网格时:
当使用selenium网格时,驱动程序应该出现在网格中所有机器的路径中。
蟒蛇:
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
driver = webdriver.Firefox(capabilities=firefox_capabilities)
红宝石:
caps = Selenium::WebDriver::Remote::Capabilities.firefox marionette: true
driver = Selenium::WebDriver.for :firefox, desired_capabilities: caps
爪哇:
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
// Set Marionette on so the Grid will use this instead of normal FirefoxDriver
capabilities.setCapability("marionette", true);
WebDriver driver = new RemoteWebDriver(capabilities);
C#:
DesiredCapabilities capabilities = DesiredCapabilities.Firefox();
// Set Marionette on so the Grid will use this instead of normal FirefoxDriver
capabilities.SetCapability("marionette", true);
var driver = new RemoteWebDriver(capabilities);
我在Ubuntu桌面16.04上使用Selenium WebDriver,无法打开浏览器。在Firefox更新之后,我出现了以下错误(在此之前,一切都正常):
我已经通过命令行java-jar Jenkins.war启动了Jenkins服务器。但是,当我尝试执行Jenkins参数化作业(maven测试)时,firefox会打开片刻,然后立即关闭。 如果我使用chrome浏览器,它在Jenkins的工作很好。 注意:同样的测试在火狐和chrome浏览器上执行得很好。
我正在使用以下配置: 运行时发现以下错误: org.openqa.selenium.会话未创建异常断开:无法连接到渲染器 (会话信息:chrome=62.0.3202.62) (驱动程序信息:chromeDrive=2.34.522940 (1a76f96f66e3ca7b8e57d503b4dd3bcfba87af1),平台=Windows NT 6.1.7601 SP1x86_64)(警告:服
每当我尝试时,它都会说Chrome意外关闭并要求重新打开。在python末尾,它给出了错误: 我的代码是: 更新:在详细模式下运行会产生以下结果:
我使用的是Firefox浏览器版本50.1.0、Selenium 3.0.1、Java1.8、TestNG和Eclipse。我无法使用以下代码打开Firefox浏览器: 但我得到了以下例外情况:
有可能让selenium使用TOR浏览器吗?有人有什么代码可以复制粘贴吗?