为了账号安全,请及时绑定邮箱和手机立即绑定

Selenium Webdriver - 错误

Selenium Webdriver - 错误

慕斯709654 2023-12-13 16:47:30
我正在学习测试自动化并在 Selenium Webdriver 中编写了一个脚本,但是我在下面遇到了很多错误。我按照教程进行了安装并遵循了所有步骤,但是有些东西不起作用。这些错误并没有告诉我太多信息,所以任何人都可以看一下它并告诉我在这种情况下我应该做什么?谢谢。public static void main(String[] args) {    System.setProperty("webdriver.firefox.marionette","C:\\geckodriver.exe");    WebDriver driver = new FirefoxDriver();    String baseUrl = "http://www.facebook.com";    String tagName = "";    driver.get(baseUrl);    tagName = driver.findElement(By.id("email")).getTagName();    System.out.println(tagName);    driver.close();    System.exit(0);Exception in thread "main" org.openqa.selenium.WebDriverException: Timed out waiting 45 seconds for Firefox to start.Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:48'System info: host: 'DESKTOP-5N6LIMJ', ip: '192.168.0.16', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_221'Driver info: driver.version: FirefoxDriver    at org.openqa.selenium.firefox.XpiDriverService.waitUntilAvailable(XpiDriverService.java:247)    at org.openqa.selenium.firefox.XpiDriverService.start(XpiDriverService.java:159)    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:147)    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:125)    at newpackage.MyClass.main(MyClass.java:12)Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:5176/hub/status] to be available after 45010 ms    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:100)    at org.openqa.selenium.firefox.XpiDriverService.waitUntilAvailable(XpiDriverService.java:245)    ... 8 more
查看完整描述

4 回答

?
MYYA

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将为您完成所有魔法:

  1. 它检查您计算机中安装的浏览器的版本(例如 Chrome、Firefox)。

  2. 它检查驱动程序的版本(例如 chromedriver、geckodriver)。如果未知,则使用最新版本的驱动程序。

  3. 如果 WebDriverManager 缓存中不存在 WebDriver 二进制文件(默认情况下为 ~/.m2/repository/webdriver),它将下载该二进制文件。

  4. 它导出 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();


查看完整回答
反对 回复 2023-12-13
?
皈依舞

TA贡献1851条经验 获得超3个赞

如果您是自动化新手,我建议您保持简单。不要使用 WebDriver Manager,而只需按照上述人员的建议正确设置系统属性即可。

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

只有这样才能解决问题。但如果您遇到任何异常,请在此处分享。因为你是新人,所以慢慢地了解一切。如果您不理解更改的目的,请勿进行更改。


查看完整回答
反对 回复 2023-12-13
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

使用此代码

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


查看完整回答
反对 回复 2023-12-13
?
冉冉说

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);


查看完整回答
反对 回复 2023-12-13
  • 4 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信