Какая польза от селена-хром-драйвера, без двоичного файла хрома? - PullRequest
0 голосов
/ 02 ноября 2018

Когда можно использовать эту зависимость (selenium-chrome-driver)?

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-chrome-driver</artifactId>
    <version>3.14.0</version>
</dependency>

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

Вопрос: Так какая польза от этой зависимости без двоичного файла chrome?

Я сослался на ответы ниже и попробовал, не используя двоичное объявление. Что говорит об использовании зависимости WebDriverManager:

Как работать с драйвером Chrome в Maven

хромированный драйвер селена 2

https://stackoverflow.com/a/39809773/9405154

https://github.com/bonigarcia/webdrivermanager


Это решено,

Ошибка: сбой при передаче org.apache.commons: commons-compress: jar: 1.14 от https://repo.maven.apache.org/maven2 был кэширован в локальном хранилище, разрешение не будет предприниматься повторно до обновления истек интервал центрального или принудительные обновления. Исходная ошибка: Не удалось передать артефакт org.apache.commons: commons-compress: jar: 1.14 от / к центральному (https://repo.maven.apache.org/maven2): Операция была отменена.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Selenium - это многомодульный проект. Одним из модулей является селен-хром-драйвер. Содержит логику работы хрома с селеном. Вы можете добавить эту зависимость в свой проект и каким-то образом изменить / расширить его исходное поведение. Тем не менее, он не будет запускать настоящий браузер Chrome без двоичного файла - только так он работает. Тогда вам придется создать исполняемый файл самостоятельно. Вы можете проверить, как проекты используют эту зависимость здесь

Короче говоря, если вы не хотите беспокоиться об управлении двоичными файлами, используйте WebDriverManager , потому что он работает как шарм.

Исходя из текста ошибки из вашего вопроса, вы можете попробовать следующее решение:

Удалить все ваши неудачные загрузки:

find ~/.m2  -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;

Для окон:

cd %userprofile%\.m2\repository
for /r %i in (*.lastUpdated) do del %i

Затем щелкните правой кнопкой мыши свой проект в Eclipse и выберите Maven -> «Обновить проект ...», убедитесь, что в появившемся диалоговом окне отмечен флажок «Обновить зависимости», и нажмите кнопку «ОК».

скопировано отсюда: Ссылка

0 голосов
/ 02 ноября 2018

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

Также, если вы выполняете КИ с использованием jenkins, вам следует предпочесть использование docker. Таким образом, вам не нужно управлять двоичными экземплярами, докер справится с этим за вас.

...