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

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

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

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

Можно. Об этом даже сказано на страничке geckodriver GitHub - mozilla/geckodriver: WebDriver for Firefox
А спека вебдрайвера тут WebDriver
По второму пункту отлично зайдет browsermob proxy.

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

1 лайк

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

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

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

4 лайка

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

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

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

1 лайк

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

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

1 лайк

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

1 лайк