Selenium Webdriver - ошибки - PullRequest
       3

Selenium Webdriver - ошибки

0 голосов
/ 23 октября 2019

Я изучаю автоматизацию тестирования и написал скрипт на 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
Caused by: java.util.concurrent.TimeoutException
    at java.util.concurrent.FutureTask.get(Unknown Source)
    at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:156)
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:75)
    ... 9 more

Ответы [ 4 ]

0 голосов
/ 25 октября 2019

Я бы посоветовал вам не усложнять, если вы новичок в автоматизации. Вместо этого не используйте WebDriver Manager, просто правильно установите свойство System, как предложено выше.

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

Только это должно решить проблему. Но если вы столкнулись с каким-либо исключением, пожалуйста, поделитесь им здесь. Так как вы новичок, так что продолжайте медленно, понимая все. Не вносите изменения, если вы не понимаете их цели.

0 голосов
/ 24 октября 2019

Вам следует использовать библиотеку WebDriverManager вместо ручной установки двоичного файла драйвера.

WebDriverManager позволяет автоматизировать управление двоичными драйверами (например, chromedriver, geckodriver и т. Д.)требуется Selenium WebDriver.

Сначала добавьте его в свой проект, например,

    <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. Загружает двоичный файл WebDriver, если его нет в кэше WebDriverManager (по умолчанию ~ / .m2 / repository / webdriver).

  4. Экспортирует правильные переменные среды Java WebDriver, требуемые Selenium (не выполняется при использовании WebDriverManager из CLI или в качестве сервера).

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

Вы должны использовать Maven или Gradle для создания приложения, проверьте этот пост: Базовый пример программы с использованием WebDriver Java Maven

0 голосов
/ 24 октября 2019
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);
0 голосов
/ 24 октября 2019

Пользователь этот код

System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...