Как в JDI использовать webdriver? Или как его переопределить?

Собственно вопрос - как в JDI использовать webdriver?
В доках показаны примеры проперти файлов, но в них нет никакой пользы, т.к. JDI по умолчанию их не использует(Idea не подсвечивает переменные в файлах как используемые). И в документации не указано что нужно сделать чтобы использовать эти проперти(помимо раскомментирования нужных переменных).
По умолчанию JDI использует WebDriverManager от bonigarcia. Я пока не нашел способа его отключить(из коробки) и использовать драйвер, который хранится у меня.
Помимо того, что может быть нужен определенный драйвер, проблема еще и в том, что сейчас не работает WebDriverManager от bonigarcia - WebDriverManager bonigarcia doesn't work · GitHub

Пример кода и пропертей - https://github.com/jdi-templates/jdi1-maven-template

https://github.com/jdi-templates/jdi1-maven-template

Буду рад любым советам.

@roman_iovlev
Помоги человеку :slight_smile:

Интересно как можно помочь, если проблемы нет как таковой?

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
19:30.437 INFO: Reading https://chromedriver.storage.googleapis.com/ to seek chromedriver
19:30.930 INFO: Downloading https://chromedriver.storage.googleapis.com/2.33/chromedriver_linux32.zip
19:31.894 INFO: Extracting binary from compressed file chromedriver_linux32.zip
19:31.994 INFO: Exporting webdriver.chrome.driver as /home/travis/.m2/repository/webdriver/chromedriver/linux32/2.33/chromedriver
19:31.996 INFO: Init test run
19:32.177 INFO: Run Tests
19:32.342 INFO: [ThreadID: 12]Open page 'Home Page' for Home Page(https://www.google.ru/search?q=jdi/index.htm)
Starting ChromeDriver 2.33.506178 (69ae10f91723897591ef1a3b465aa5d35011eb5e) on port 24750
Only local connections are allowed.
Jun 19, 2018 10:19:35 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
19:37.30 INFO: [ThreadID: 1]Test run finished. 
Total test run time: 21:00:04.9
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 9.671 sec - in TestSuite

Как это проблемы нет?

Проблема в том что JDI сам конструирует инстанс WebDriver по проперти файлу. А нужно передать JDI свой инстанс, который был создан руцями.

Ваша ссылка на пример как раз таки указывает JDI конструировать по проперти файлу.

Откуда вы это взяли?

Во всех версиях JDI (1.0, 2.0, Light)
Свой драйвер можно задать используя метод useDriver(() → customDriver());
Тут есть пример: jdi-light/CustomDriverTestsInit.java at master · jdi-testing/jdi-light · GitHub

Также через настройки test.properties можно указать конкретный путь к драйверу drivers.folder=C:\Selenium ;
Драйвер скачивается автоматически, только если эта настройка отключена в test.properties

В JDI 1, 2 он находится в WebSettings.useDriver(…)
В JDI Light WebSettings и в WebDriverFactory (одно и то же)

  • На текущий момент JDI 1, 2 больше не развиваются - только поддержка
    JDI Light активно развивается и имеет не плохую документацию API Reference
1 Like