Selenium Webdriver - 错误

我正在学习测试自动化并在 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



慕斯709654
浏览 82回答 4
4回答

MYYA

您应该使用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();

皈依舞

如果您是自动化新手,我建议您保持简单。不要使用 WebDriver Manager,而只需按照上述人员的建议正确设置系统属性即可。System.setProperty("webdriver.gecko.driver","C:\geckodriver.exe");只有这样才能解决问题。但如果您遇到任何异常,请在此处分享。因为你是新人,所以慢慢地了解一切。如果您不理解更改的目的,请勿进行更改。

拉风的咖菲猫

使用此代码System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe"); WebDriver&nbsp;driver&nbsp;=&nbsp;new&nbsp;FirefoxDriver();

冉冉说

You need to add this :&nbsp;&nbsp; &nbsp; System.setProperty("webdriver.gecko.driver",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "C:\\geckodriver-v0.26.0-win64\\geckodriver.exe");&nbsp; &nbsp; FirefoxOptions options = new FirefoxOptions();&nbsp; &nbsp; options.setBinary("C:\\Program Files\\Mozilla Firefox\\firefox.exe");&nbsp;&nbsp; &nbsp; options.setCapability("marionette", false);&nbsp; &nbsp; driver = new FirefoxDriver(options);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java