Отключить диспетчер драйверов Selenium

В Selenium 4.11.0 официально включен менеджер драйверов Selenium, который проверяет совместимость драйвера и браузера.

Эта функциональность может быть спорной, но это не часть моего вопроса. Я хотел бы отключить это поведение, поскольку моя тестовая среда находится в закрытой сетевой среде и с ограниченным доступом к Интернету. Так как из документации я не нашел по каким адресам нужно предоставлять доступ, хотелось бы его отключить.

Единственный известный мне адрес виден из предупреждающего сообщения: 22 апреля 2024 г., 11:00:24 org.openqa.selenium.manager.SeleniumManager лямбда$runCommand$1 ВНИМАНИЕ: Исключение при попытке узнать версию geckodriver: ошибка отправки запроса на URL-адрес (https://github.com/mozilla/geckodriver/releases/latest): ошибка при попытке подключения: ошибка TCP-соединения: время ожидания операции (ошибка ОС) 110)

Если кто-нибудь знает, как я могу отключить его, поделитесь со мной, или если вы можете указать мне список всех URL-адресов, к которым может обращаться селен.

Все это описано на странице Selenium Manager. Я думал, вы сказали, что проверили документацию?

JeffC 22.04.2024 16:00
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
255
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы не хотите SeleniumManager управлять драйверами браузера, вы всегда можете загрузить необходимый драйвер вручную из Интернета и вручную указать местоположение драйвера в своем коде. Selenium автоматически использует локальный драйвер и отключается SeleniumManager

См. примеры ниже:

  1. Код ниже активирует Selenium Manager:

    WebDriver driver = new FirefoxDriver();
    driver.manage().window().maximize();
    driver.get("https://google.com");
    driver.quit();
    
  2. Код ниже будет использовать драйвер, указанный в коде, тем самым отключив SeleniumManager:

    System.setProperty ("webdriver.gecko.driver", "C:/<full path>/geckodriver.exe");
    
    WebDriver driver = new FirefoxDriver();
    driver.manage().window().maximize();
    driver.get("https://google.com");
    driver.quit();
    

С другой стороны: последняя версия селена предполагает установку местоположения драйвера с использованием Класс обслуживания драйверов, сразу не могу вспомнить, в какой версии селена представлен класс Service. Но я проверил наличие селена v4.11.0, вы можете использовать System.setProperty, чтобы установить путь к драйверу.

Это правда. И у меня реализована такая инициализация драйверов. Мой geckodriver.exe также доступен через системную переменную PATH, однако диспетчер драйверов все еще пытается проверить совместимость между доступным geckodriver и Firefox.

Gico 22.04.2024 12:32

Похоже, что в вашей системе существует несоответствие версий geckodriver.exe и Firefox. Вам необходимо загрузить соответствующий драйвер, соответствующий вашему браузеру.

Shawn 22.04.2024 12:36

Какая версия Firefox работает в вашей системе? А какую версию geckodriver.exe вы скачали из интернета?

Shawn 22.04.2024 12:38

У меня есть geckodriver (geckodriver 0.34.0 (c44f0d09630a 2024-01-02 15:36 +0000)) и Mozilla Firefox 115.1.0esr.

Gico 22.04.2024 12:39

Я явно установил System.setProperty ("webdriver.gecko.driver", "/usr/local/bin/geckodriver"); и это работает сейчас. Странно, раньше в этом не было необходимости, если geckodriver был определен в системном пути. В любом случае спасибо за ответ!

Gico 22.04.2024 12:54

Другие вопросы по теме