Как использовать новый Selenium Web Driver
Сделал клиенту задачу на основе Selenium Web Driver. Использовал в качестве материалов для работы статью на инфостарте.
А тут Chrome обновился:
А с 115-го релиза Chrome изменился способ выпуска обновлений Chrome Driver:
Starting with M115 the ChromeDriver release process is integrated with that of Chrome. The latest Chrome + ChromeDriver releases per release channel (Stable, Beta, Dev, Canary) are available at the Chrome for Testing (CfT) availability dashboard. As a result, you might no longer have a need for version selection — you could choose any available CfT version and simply download the correspondingly-versioned ChromeDriver binary.
Я скачал стабильную редакцию Chrome, в виде архива, который разворачивается в папку:
Если запустить chrome.exe, запускается отладочный Chrome Browser, но как его привязать к серверу Web Driver? Непонятно…
Как жить с этим, нигде не нашел. Пришлось разбираться самому.
Разбирался долго, но выйти из тупика помогла строчка в инструкции:
https://www.selenium.dev/documentation/grid/getting_started/
Я так понял, что этот параметр позволяет автоматически подбирать (скачивать) chromedriver под текущий браузер.
Но запуск выдал ошибку:
Я обновил Java с сайта Java.COM:
Увы, ошибка не пропала. Поискав в интернете, я нашел, что нужно использовать java c oracle. Скачала Java отсюда:
https://www.oracle.com/java/technologies/downloads/#jdk21-windows
jdk — это Oracle, jre — это Sun.
Далее не стал разбираться с path, а просто указал, откуда запускать Java:
Один раз была выдана ошибка, связанная с тем, что не удалось скачать файл — наверное пытался скачаться chromedriver нужной версии:
На этапе: НачатьАвторизацию ошибка: При создании сессии Selenium. Код состояния: Текст: {ВнешняяОбработка.RunGetData.Форма.Форма.Форма(2477)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка работы с Интернет: Failure when receiving data from the peer
Однако потом все заработало. Ввел адрес http://localhost:4444 и увидел страницу сервера Selenium Grid:
Соответственно заработал и скрипт автоматизации через Selenium:
В каталоге сервера не должно быть chromedirver:
У меня строка запуска сервера выглядит теперь так:
"c:\Program Files\Java\jdk-21\bin\java" -jar selenium-server-4.14.1.jar standalone --selenium-manager true
Тестовый Chrome стартует в той же версии, что и установленный на компьютере Chrome:
Объем: 2 час.
Цитата: «jdk — это Oracle, jre — это Sun.»
1. Тебе не нужно устанавливать JDK, т. к. JDK — это java developnent kit — это комплект разработчика, туда JRK входит по умолчанию.
2. JRK надо только установить для работы — это реализация java машины просто тупо для запуска java приложений.
3. И то и другое это Oracle, Sun Microsystem была поглощена Oracle, поэтому разработка java машин связывают сейчас только с Ораклом.
хз, я зашел на java.com, скачал java, а она старая, что видно из сообщения об ошибке.
Скачал java с ORACLE, она там была JAVA 11, все заработало. Возможно там есть JRE отдельно, но я сразу не нашел, поэтому скачал JDK.
Мне не нужно знать устройство под капотом, мне нужно ехать.
4/. Да, прописать path — это лучше чем указывать откуда запуск, т. к. переменные среды в этом случае устанавливаются по умолчанию, и в будущем любые Java приложения будут запускаться без проблем. Ты что не знаешь как переменную среды прописать на винде или где там еще,???
мне нет нужды следить за будущими обновлениями. Я у себя только тестирую. Клиенту в продакшне можно конечно и в path прописать.
Только там уже в PATH была прописана java от JRE, видимо.