4 回答

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個贊
您應(yīng)該使用WebDriverManager庫,而不是手動設(shè)置驅(qū)動程序二進(jìn)制文件。
WebDriverManager 允許自動管理 Selenium WebDriver 所需的二進(jìn)制驅(qū)動程序(例如 chromedriver、geckodriver 等)。
首先將其添加到您的項(xiàng)目中,例如
????<dependency> ????????<groupId>io.github.bonigarcia</groupId> ????????<artifactId>webdrivermanager</artifactId> ????????<version>3.7.1</version>???????? ????</dependency>
然后替換System.setProperty("webdriver.firefox.marionette","C:\\geckodriver.exe");
為WebDriverManager.firefoxdriver().setup();
,WebDriverManager將為您完成所有魔法:
它檢查您計算機(jī)中安裝的瀏覽器的版本(例如 Chrome、Firefox)。
它檢查驅(qū)動程序的版本(例如 chromedriver、geckodriver)。如果未知,則使用最新版本的驅(qū)動程序。
如果 WebDriverManager 緩存中不存在 WebDriver 二進(jìn)制文件(默認(rèn)情況下為 ~/.m2/repository/webdriver),它將下載該二進(jìn)制文件。
它導(dǎo)出 Selenium 所需的正確 WebDriver Java 環(huán)境變量(從 CLI 或作為服務(wù)器使用 WebDriverManager 時未完成)。
WebDriverManager 解析 Chrome、Firefox、Opera、PhantomJS、Microsoft Edge 和 Internet Explorer 瀏覽器的驅(qū)動程序二進(jìn)制文件。為此,它為這些瀏覽器提供了多個驅(qū)動程序管理器。這些驅(qū)動程序管理器可以按如下方式使用:
????WebDriverManager.chromedriver().setup(); ????WebDriverManager.firefoxdriver().setup(); ????WebDriverManager.operadriver().setup(); ????WebDriverManager.phantomjs().setup(); ????WebDriverManager.edgedriver().setup(); ????WebDriverManager.iedriver().setup();

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個贊
如果您是自動化新手,我建議您保持簡單。不要使用 WebDriver Manager,而只需按照上述人員的建議正確設(shè)置系統(tǒng)屬性即可。
System.setProperty("webdriver.gecko.driver","C:\geckodriver.exe");
只有這樣才能解決問題。但如果您遇到任何異常,請?jiān)诖颂幏窒?。因?yàn)槟闶切氯耍月亓私庖磺?。如果您不理解更改的目的,請勿進(jìn)行更改。

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個贊
使用此代碼
System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe"); WebDriver driver = new FirefoxDriver();

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個贊
You need to add this :
System.setProperty("webdriver.gecko.driver",
"C:\\geckodriver-v0.26.0-win64\\geckodriver.exe");
FirefoxOptions options = new FirefoxOptions();
options.setBinary("C:\\Program Files\\Mozilla Firefox\\firefox.exe");
options.setCapability("marionette", false);
driver = new FirefoxDriver(options);
添加回答
舉報