第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

webdriver.firefox.marionette和webdriver.gecko

webdriver.firefox.marionette和webdriver.gecko

翻翻過去那場雪 2019-11-28 10:05:45
我現(xiàn)在正在學習硒,遇到了問題。我知道Selenium默認不使用驅(qū)動程序就支持舊的Firefox版本。對于最新版本的Firefox,我們必須下載驅(qū)動程序并使用進行定義System.setProperty。根據(jù)此鏈接,對于Firefox 45和46,啟動驅(qū)動程序代碼如下所示:WebDriver driver = new FirefoxDriver();我的Firefox是45.5.1版,但上述代碼仍然無法正常工作。因此,根據(jù)此鏈接,我添加了:System.setProperty("webdriver.firefox.marionette","C:\\geckodriver.exe");而且有效。然后我意識到自己還沒有安裝geckodriver.exe計算機。要查看進展情況,我已更改為以下代碼:System.setProperty("webdriver.firefox.marionette","");它仍然有效。所以,這是我的第一個問題:發(fā)生了什么事?我確定geckodriver.exe在我的環(huán)境中不存在。如果未指定任何位置,那么為什么我必須設(shè)置屬性?另外,我看過類似的代碼:System.setProperty("webdriver.gecko.driver", "/tools/marionette/wires.exe");我的第二個問題是webdriver.gecko.driver and webdriver.firefox.marionette和wires.exeand和有g(shù)eckodriver.exe什么區(qū)別?
查看完整描述

3 回答

?
守著一只汪

TA貢獻1872條經(jīng)驗 獲得超4個贊

在版本45(推送至版本47)之前,用于自動化Firefox的驅(qū)動程序是每個客戶端附帶的擴展。但是,此擴展名已被刪除,可能是由于政策更改所致,該政策現(xiàn)在要求所有擴展名均由Mozilla簽名。


Marionette是Firefox附帶/隨附的新驅(qū)動程序。該驅(qū)動程序具有自己的協(xié)議,該協(xié)議與Selenium / WebDriver協(xié)議不直接兼容。


的壁虎驅(qū)動器(以前稱為導線)是實施硒/ webdriver的協(xié)議的應用服務器。它轉(zhuǎn)換Selenium命令并將其轉(zhuǎn)發(fā)給Marionette驅(qū)動程序。


對于Java客戶端,默認行為是使用Gecko驅(qū)動程序,但是可以將其替換為將舊版擴展用作具有以下webdriver.firefox.marionette屬性的驅(qū)動程序:


System.setProperty("webdriver.firefox.marionette", "false");

或具有以下marionette能力FirefoxOptions:


FirefoxOptions options = new FirefoxOptions()

  .setLegacy(true);


WebDriver driver = new FirefoxDriver(options);

// or with a remote server

WebDriver driver = new RemoteWebDriver(remoteUrl, options.toDesiredCapabilities());

或直接與DesiredCapabilities:


DesiredCapabilities capa = DesiredCapabilities.firefox();

capa.setCapability("marionette", false);


WebDriver driver = new FirefoxDriver(capa);

// or with a remote server

WebDriver driver = new RemoteWebDriver(remoteUrl, capa);

要定義Gecko驅(qū)動程序的位置,請將驅(qū)動程序放置在PATH環(huán)境變量中存在的文件夾中,或者在屬性中定義位置webdriver.gecko.driver:


System.setProperty("webdriver.gecko.driver", "C:\\geckodriver.exe");

或使用在命令行中分配的屬性啟動遠程服務器:


java -Dwebdriver.gecko.driver="C:\\geckodriver.exe" -jar selenium-server-standalone-3.4.0.jar


查看完整回答
反對 回復 2019-11-28
?
肥皂起泡泡

TA貢獻1829條經(jīng)驗 獲得超6個贊

Marionette是最新Firefox版本附帶/附帶的新驅(qū)動程序。


但是,Geckodriver是使用W3C WebDriver兼容客戶端與基于Gecko的瀏覽器進行交互的代理。Geckodriver提供了由WebDriver協(xié)議描述的HTTP API,以與Gecko瀏覽器進行通信,例如47以上的Firefox版本。


System.setProperty("webdriver.gecko.driver","path of/geckodriver.exe");

WebDriver driver = new FirefoxDriver();

如果仍然遇到問題(由于FF版本不兼容),則可以使用以下功能:


DesiredCapabilities capabilities=DesiredCapabilities.firefox();

capabilities.setCapability("marionette", true);

WebDriver driver = new FirefoxDriver(capabilities);


查看完整回答
反對 回復 2019-11-28
  • 3 回答
  • 0 關(guān)注
  • 1223 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號