#azure #azure-devops #agent
#azure #azure-devops #агент
Вопрос:
Недавно я создал самостоятельный агент Azure DevOps Agent и также установил его с помощью Google Crome. Возможно ли установить драйвер Chrome на этот сервер и могу ли я выбрать конкретную версию для использования?
Я бы хотел, чтобы этот автономный агент использовал драйвер Chrome 2.42.0.1.
Любая помощь будет высоко оценена. Спасибо!
Комментарии:
1. Каков ваш конвейер? где вы хотите, чтобы агент использовал драйвер?
2. Привет @ShaykiAbramczyk, наш QA хочет использовать его для своих проектов по автоматизации тестирования пользовательского интерфейса. Спасибо
3. Если вы устанавливаете только 2.42.0.1, я думаю, агент использует эту версию… потому что это установленный… если ваш вопрос касается конвейера, поэтому вам нужно предоставить общий доступ к конвейеру и где в конвейере вы запускаете тестирование пользовательского интерфейса.
4. Возможно, вам может потребоваться написать powershell для установки этого, но это возможно. я не знаю вашего тестового проекта, но если вы используете .net-тест, вы можете перенести свой chromedriver через nuget, а затем в buildoutput тестов, это было бы лучше, чем установка chromedriver
5. спасибо @ShaykiAbramczyk amp; @ D.J — я уже смог установить его, выполнив следующие действия: npmjs.com/package/chromedriver 🙂
Ответ №1:
Еще одно решение для использования агентов, размещенных в Microsoft, с уже установленным драйвером Chrome для браузера Chrome.
Агенты уже содержат переменную среды с расположением ChromeWebDriver в агенте (это работает для «windows-2019» и «vs2017-win2016», размещенных в Microsoft агентов). В агентах также есть драйверы firefox и IE (https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md ).
C # код:
ChromeOptions chromeOptions = new ChromeOptions();
var driverPath = Path.Combine(Directory.GetCurrentDirectory());
var envChromeWebDriver = Environment.GetEnvironmentVariable("ChromeWebDriver");
if(!string.IsNullOrEmpty(envChromeWebDriver) amp;amp;
File.Exists(Path.Combine(envChromeWebDriver, "chromedriver.exe")))
{
driverPath = envChromeWebDriver;
}
ChromeDriverService defaultService = ChromeDriverService.CreateDefaultService(driverPath);
defaultService.HideCommandPromptWindow = true;
var driver = (IWebDriver) new ChromeDriver(defaultService, chromeOptions);
Ответ №2:
Установка, которую я нашел с помощью npm install here: 🙂
Ответ №3:
Возможно, это поздний пост, но чтобы помочь форуму, который помогает мне уже почти десять лет, вот как мы с этим разобрались.
По умолчанию в «образе VS2017, размещенном в Azure Pipelines» (или в спецификации классического агента редактора, который называется vs2017-win2016) уже предварительно установлены Google Chrome (версия 77.0.3865.90 по состоянию на 3 декабря 2019 года) и ChromeDriver (77.0.3865.40 по состоянию на 3 декабря 2019 года) (подробнее здесь — https://github.com/Microsoft/azure-pipelines-image-generation/blob/master/images/win/Vs2017-Server2016-Readme.md)
Но мы все еще сталкивались с проблемой того, что «selenium-side-runner» не смог найти ChromeDriver из-за отсутствия ПУТИ в системных переменных переменной среды в Windows.
Изображение — Драйвер Chrome не найден
Итак, мы попытались копнуть немного глубже и обнаружили, что можем достичь этого, загрузив ChromeDriver в процессе сборки, а затем скопировав его в папку NodeJS в C:Program Files ..! Приятно?
Давайте кратко пройдемся по шагам, чтобы понять, как это достигается.
- Сначала мы должны посетить https://chromedriver.chromium.org/downloads и найдите версию драйвера, соответствующую версии Chrome, установленной на размещенном агенте (версия 77 в нашем случае по состоянию на дату).
- Затем мы создаем папку в наших репозиториях Azure и нажимаем оба Chromedriver.exe и наш файл Sample.side в этой папке (имя файла Side может быть указано в соответствии с вашими предпочтениями, и оно генерируется из Selenium IDE), добавляя ChromeDriver.exe и файл sample.side в репозитории
- Теперь мы создаем процесс сборки, чтобы просто заархивировать содержимое этой папки и создать из нее артефакт для использования в конвейере выпуска. Объяснен конвейер сборки
- Затем мы создаем конвейер выпуска и гарантируем, что используется агент vs2017-win2016
- Шаги, назначенные агенту, включают:
- Извлечение zip-файла
- Установка побочного модуля Selenium с помощью NPM и пользовательской команды — «install -g selenium-side-runner«
- Затем мы должны скопировать ChromeDriver.exe из извлеченных файлов в «C:Program Files nodejs» папка с использованием командной строки — копировать «chromedriver.exe » «C:Program Файлыnodejs»
- Последним шагом будет запуск команды «selenium-side-runner» — selenium-side-runner sample.side
- Мы увидим результат теста в конце задачи, проверив файл журнала для задачи.
Надеюсь, это поможет ..!