Azure Devops Ubuntu 18.04 angular тесты e2e - PullRequest
0 голосов
/ 27 мая 2020

Последняя версия chrome, установленная на агентах сборки Ubuntu 18.04, указана здесь . Я пытаюсь использовать 81.0.4044.138 на момент написания этой статьи.

В моем пакете. json У меня есть следующие скрипты:

{
  ...
  scripts: {
    ...
    "ci-e2e": "ng e2e --protractor-config e2e/ci.protractor.conf.js --webdriver-update=false",
    "webdriver-update": "./node_modules/.bin/webdriver-manager update --versions.chrome=81.0.4044.138",
    ...
  }
  ...
}

Я использую webdriver-update за которым следует ci-e2e в моем конвейере:

enter image description here

Я продолжаю получать эту ошибку в моем Azure конвейере DevOps:

...
2020-05-27T18:29:30.5713000Z [18:29:30] E/launcher - session not created: This version of ChromeDriver only supports Chrome version 81
2020-05-27T18:29:30.5713844Z   (Driver info: chromedriver=81.0.4044.69 (6813546031a4bc83f717a2ef7cd4ac6ec1199132-refs/branch-heads/4044@{#776}),platform=Linux 5.3.0-1022-azure x86_64)
2020-05-27T18:29:30.5714690Z [18:29:30] E/launcher - SessionNotCreatedError: session not created: This version of ChromeDriver only supports Chrome version 81
2020-05-27T18:29:30.5715686Z   (Driver info: chromedriver=81.0.4044.69 (6813546031a4bc83f717a2ef7cd4ac6ec1199132-refs/branch-heads/4044@{#776}),platform=Linux 5.3.0-1022-azure x86_64)
2020-05-27T18:29:30.5716525Z     at Object.checkLegacyResponse (/home/vsts/work/1/s/wheres-my-order/node_modules/selenium-webdriver/lib/error.js:546:15)
2020-05-27T18:29:30.5717285Z     at parseHttpResponse (/home/vsts/work/1/s/wheres-my-order/node_modules/selenium-webdriver/lib/http.js:509:13)
2020-05-27T18:29:30.5718469Z     at /home/vsts/work/1/s/wheres-my-order/node_modules/selenium-webdriver/lib/http.js:441:30
2020-05-27T18:29:30.5718928Z     at processTicksAndRejections (internal/process/task_queues.js:97:5)
2020-05-27T18:29:30.5719422Z From: Task: WebDriver.createSession()
2020-05-27T18:29:30.5720072Z     at Function.createSession (/home/vsts/work/1/s/wheres-my-order/node_modules/selenium-webdriver/lib/webdriver.js:769:24)
2020-05-27T18:29:30.5720820Z     at Function.createSession (/home/vsts/work/1/s/wheres-my-order/node_modules/selenium-webdriver/chrome.js:761:15)
2020-05-27T18:29:30.5721779Z     at Direct.getNewDriver (/home/vsts/work/1/s/wheres-my-order/node_modules/protractor/built/driverProviders/direct.js:77:33)
2020-05-27T18:29:30.5722537Z     at Runner.createBrowser (/home/vsts/work/1/s/wheres-my-order/node_modules/protractor/built/runner.js:195:43)
2020-05-27T18:29:30.5723198Z     at /home/vsts/work/1/s/wheres-my-order/node_modules/protractor/built/runner.js:339:29
2020-05-27T18:29:30.5723892Z     at _fulfilled (/home/vsts/work/1/s/wheres-my-order/node_modules/protractor/node_modules/q/q.js:834:54)
2020-05-27T18:29:30.5724550Z     at /home/vsts/work/1/s/wheres-my-order/node_modules/protractor/node_modules/q/q.js:863:30
2020-05-27T18:29:30.5725293Z     at Promise.promise.promiseDispatch (/home/vsts/work/1/s/wheres-my-order/node_modules/protractor/node_modules/q/q.js:796:13)
2020-05-27T18:29:30.5726001Z     at /home/vsts/work/1/s/wheres-my-order/node_modules/protractor/node_modules/q/q.js:556:49
2020-05-27T18:29:30.5726677Z     at runSingle (/home/vsts/work/1/s/wheres-my-order/node_modules/protractor/node_modules/q/q.js:137:13)
...

Он пытается использовать 81.0.4044.69 вместо 81.0.4044.138, как я указал.

Я даже добавил это в свой ci.protractor.conf.js:

    ...
    chromeDriver: '../node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_81.0.4044.138',
    ...

I ' м действительно борюсь с e2e suite. Каждый раз, когда выпускаются агенты Azure Devops, я должен набирать go и указывать этот номер версии magi c, который не является последним, но самым последним с точки зрения агента, и я бы очень хотел настроить это так что мне не нужно постоянно возвращаться и подталкивать изменения кода каждый раз, когда версия, которую мне нужно использовать, изменяется. Есть ли способ сделать это без жесткого кодирования номера версии?

1 Ответ

0 голосов
/ 28 мая 2020

Согласно примечания к выпуску ubuntu-18.04 :

ChromeDriver 81.0.4044.138 (8c6c7ba89cc9453625af54f11fd83179e23450fa-refs / branch-heads / 4044 @ {# 999}); Chrome Драйвер доступен через переменную среды CHROMEWEBDRIVER

ChromeDriver 81.0.4044.138 был установлен по пути $ (CHROMEWEBDRIVER).

Примечание: $ (CHROMEWEBDRIVER) равно

/usr/local/share/chrome_driver

На основании моего теста я использую задачу «PowerShell Script» для вывода ChromeDriver и Chrome версии.

google-chrome --version

cd $(CHROMEWEBDRIVER)
chromedriver --version

Результат:

Script Result

Вы можете запустить этот скрипт, чтобы проверить версию chrome и chromedriver.

Затем вы можете попробовать напрямую использовать путь к хромированному драйверу из Ubuntu 18.04 агент.

Я имею в виду предложение @amirated в этом тикете .

Надеюсь, это поможет.

...