Возможно ли использовать geckodriver БЕЗ использования Selenium, напрямую через (REST?) HTTP-интерфейс?
Ведь Selenium по сути проксирует API-вызовы из вашего ЯП в HTTP-запросы к http://127.0.0.1:4444 (geckodriver.exe).
Для чего это нужно?
Например:
Отлаживаем “длинный” тест, пару десятков шагов. На 17-м шаге понимаем, что неправильно выбрали селектор. Приходится перезапускать всё заново, опять логин, переходы по страницам и т.п.
Гораздо проще было бы стартовать с 17-го шага, подключившись к браузеру, который “стоит” в нужном месте интерфейса. Отлаживать, так сказать, маленькими кусочками.
А Selenuim, насколько мне известно, не позволяет подключиться к уже запущенному драйверу и использовать браузер в текущем состоянии…
При загрузке некоторых интерфейсов, где много графики на слабом (или искусственно лимитированном) канале некоторые элементы просто не появляются на странице (и мы точно не знаем, сколько их должно было быть)
Вероятно geckodriver мог бы выдавать информацию о такого рода проблемах (список запросов с ошибкой 404, “не удалось загрузить” и т.п.
Вам просто надо научиться пользоваться дебагером.
В IDEA есть прекрасная возможность ставить брекпоинт и потом в этом месте нажать Alt+F8, это позволяет вводить ваши селекторы до посинения.
Второй вариант, отлаживать селекторы в браузерной консольке до того, как писать их в код.
Третий вариант с Python вам предлагать не буду ))
П.С. Вы все равно не сможете подключится к заранее открытому браузеру, от слова никак.
По второму вопросу копайте в сторону driver.manage().logs().get("browser");