4 回答

TA貢獻1868條經驗 獲得超4個贊
您應該使用WebDriverManager庫,而不是手動設置驅動程序二進制文件。
WebDriverManager 允許自動管理 Selenium WebDriver 所需的二進制驅動程序(例如 chromedriver、geckodriver 等)。
首先將其添加到您的項目中,例如
????<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將為您完成所有魔法:
它檢查您計算機中安裝的瀏覽器的版本(例如 Chrome、Firefox)。
它檢查驅動程序的版本(例如 chromedriver、geckodriver)。如果未知,則使用最新版本的驅動程序。
如果 WebDriverManager 緩存中不存在 WebDriver 二進制文件(默認情況下為 ~/.m2/repository/webdriver),它將下載該二進制文件。
它導出 Selenium 所需的正確 WebDriver Java 環境變量(從 CLI 或作為服務器使用 WebDriverManager 時未完成)。
WebDriverManager 解析 Chrome、Firefox、Opera、PhantomJS、Microsoft Edge 和 Internet Explorer 瀏覽器的驅動程序二進制文件。為此,它為這些瀏覽器提供了多個驅動程序管理器。這些驅動程序管理器可以按如下方式使用:
????WebDriverManager.chromedriver().setup(); ????WebDriverManager.firefoxdriver().setup(); ????WebDriverManager.operadriver().setup(); ????WebDriverManager.phantomjs().setup(); ????WebDriverManager.edgedriver().setup(); ????WebDriverManager.iedriver().setup();

TA貢獻1851條經驗 獲得超3個贊
如果您是自動化新手,我建議您保持簡單。不要使用 WebDriver Manager,而只需按照上述人員的建議正確設置系統屬性即可。
System.setProperty("webdriver.gecko.driver","C:\geckodriver.exe");
只有這樣才能解決問題。但如果您遇到任何異常,請在此處分享。因為你是新人,所以慢慢地了解一切。如果您不理解更改的目的,請勿進行更改。

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

TA貢獻1877條經驗 獲得超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);
添加回答
舉報