亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Firefox更新后無法使用Selenium打開瀏覽器

Firefox更新后無法使用Selenium打開瀏覽器

慕慕森 2019-07-04 16:49:18
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.
查看完整描述

3 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

從Firefox47.0版本(它剛剛發布了一段時間)開始,必須使用一個新的驅動程序(由Mozilla而不是Selenium創建)來連接到Firefox,因為這個版本引入了一個bug。從Firefox48.0版本開始,舊的驅動程序將被完全廢棄,只能使用Marionette,所以現在切換比較好。見:火狐的木偶網絡驅動程序

下載司機(在OSX中只需使用brew install geckodriver),將可執行文件重命名為wires.exe在窗戶上,或wires在*nix系統上,并確保系統路徑中存在可執行文件,然后使用以下命令在程序中使用此驅動程序而不是舊驅動程序:

使用本地Web驅動程序時:

Python:

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = Truedriver = 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:

DesiredCapabilities capabilities = DesiredCapabilities.firefox();capabilities.setCapability("marionette", true);
Webdriver driver = new FirefoxDriver(capabilities);

C#:

var driver = new FirefoxDriver(new FirefoxOptions());

使用Selenium網格時:

當使用Selenium網格時,驅動程序應該出現在網格中所有機器的路徑中。

Python:

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = Truedriver = webdriver.Firefox(capabilities=firefox_capabilities)

紅寶石:

caps = Selenium::WebDriver::Remote::Capabilities.firefox marionette: true
driver = Selenium::WebDriver.for :firefox, desired_capabilities: caps

Java:

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
// Set Marionette on so the Grid will use this instead of normal FirefoxDrivercapabilities.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 FirefoxDrivercapabilities.SetCapability("marionette", true);
var driver = new RemoteWebDriver(capabilities);


查看完整回答
反對 回復 2019-07-04
?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

固定:此時的解決方案是降級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

如果您想要取消Firefox版本并允許更新:

sudo apt-mark unhold firefox
sudo apt-get upgrade


查看完整回答
反對 回復 2019-07-04
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

有些人的問題是buttonS或select無法在marionette手法。

另一種選擇是使用舊版本的Firefox:

您可以下載二進制文件。這里在這里使用:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('path/to/binary')
driver = webdriver.Firefox(firefox_binary=binary)


查看完整回答
反對 回復 2019-07-04
  • 3 回答
  • 0 關注
  • 1436 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號