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);
添加回答
举报