В 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-адресов, к которым может обращаться селен.
Если вы не хотите SeleniumManager
управлять драйверами браузера, вы всегда можете загрузить необходимый драйвер вручную из Интернета и вручную указать местоположение драйвера в своем коде. Selenium автоматически использует локальный драйвер и отключается SeleniumManager
См. примеры ниже:
Код ниже активирует Selenium Manager:
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("https://google.com");
driver.quit();
Код ниже будет использовать драйвер, указанный в коде, тем самым отключив 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.
Похоже, что в вашей системе существует несоответствие версий geckodriver.exe
и Firefox
. Вам необходимо загрузить соответствующий драйвер, соответствующий вашему браузеру.
Какая версия Firefox
работает в вашей системе? А какую версию geckodriver.exe
вы скачали из интернета?
У меня есть geckodriver (geckodriver 0.34.0 (c44f0d09630a 2024-01-02 15:36 +0000)) и Mozilla Firefox 115.1.0esr.
Я явно установил System.setProperty ("webdriver.gecko.driver", "/usr/local/bin/geckodriver"); и это работает сейчас. Странно, раньше в этом не было необходимости, если geckodriver был определен в системном пути. В любом случае спасибо за ответ!
Все это описано на странице Selenium Manager. Я думал, вы сказали, что проверили документацию?