Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Использование geckodriver.exe БЕЗ библиотеки Selenium

design-patterns
rest
api
geckodriver
java
webdriver
http
Теги: #<Tag:0x00007fedbc22a220> #<Tag:0x00007fedbc22a090> #<Tag:0x00007fedbc229f50> #<Tag:0x00007fedbc229de8> #<Tag:0x00007fedbc229c80> #<Tag:0x00007fedbc229af0> #<Tag:0x00007fedbc229960>

(Михаил Корнилов) #1

Возможно ли использовать geckodriver БЕЗ использования Selenium, напрямую через (REST?) HTTP-интерфейс?
Ведь Selenium по сути проксирует API-вызовы из вашего ЯП в HTTP-запросы к http://127.0.0.1:4444 (geckodriver.exe).
Для чего это нужно?
Например:

  1. Отлаживаем “длинный” тест, пару десятков шагов. На 17-м шаге понимаем, что неправильно выбрали селектор. Приходится перезапускать всё заново, опять логин, переходы по страницам и т.п.
    Гораздо проще было бы стартовать с 17-го шага, подключившись к браузеру, который “стоит” в нужном месте интерфейса. Отлаживать, так сказать, маленькими кусочками.
    А Selenuim, насколько мне известно, не позволяет подключиться к уже запущенному драйверу и использовать браузер в текущем состоянии…

  2. При загрузке некоторых интерфейсов, где много графики на слабом (или искусственно лимитированном) канале некоторые элементы просто не появляются на странице (и мы точно не знаем, сколько их должно было быть)
    Вероятно geckodriver мог бы выдавать информацию о такого рода проблемах (список запросов с ошибкой 404, “не удалось загрузить” и т.п.


(Ruslan Semerenko) #2

Можно. Об этом даже сказано на страничке geckodriver https://github.com/mozilla/geckodriver
А спека вебдрайвера тут https://w3c.github.io/webdriver/
По второму пункту отлично зайдет browsermob proxy.


(Maxim Andryushchenkov) #3

Мне кажется легче сразу писать нормальные локаторы, а не оборачивать заново 100500 действий в методы на вашем ЯП.


(Yaroslav Pernerovskyy) #4

Вам просто надо научиться пользоваться дебагером.
В IDEA есть прекрасная возможность ставить брекпоинт и потом в этом месте нажать Alt+F8, это позволяет вводить ваши селекторы до посинения.
Второй вариант, отлаживать селекторы в браузерной консольке до того, как писать их в код.
Третий вариант с Python вам предлагать не буду ))

П.С. Вы все равно не сможете подключится к заранее открытому браузеру, от слова никак.

По второму вопросу копайте в сторону driver.manage().logs().get("browser");


(Борис Осипов) #5

П.С. Вы все равно не сможете подключится к заранее открытому браузеру, от слова никак.

это не совсем так. со мной как-то делился человек вот таким хаком и он работал

P.S. но да, лучше освоить дебагер.


(Yaroslav Pernerovskyy) #6

А не для ночных сборок такое прокатит? ))


(Борис Осипов) #7

Черт знает. Я не настолько наркоман, чтобы задумываться использовать это в серьез)


(Sergey Brit) #8

Увы нет. Именно в ночной сборке есть данная дебаг опция. Если, конечно, ничего не изменилось.