3
votes

Installation de ChromeDriver sur l'agent Azure DevOps auto-hébergé

J'ai récemment créé un agent Azure DevOps auto-hébergé et installé également avec Google Crome. Est-il possible d'installer le pilote Chrome sur ce serveur et puis-je sélectionner une version spécifique à utiliser?

J'aimerais que le pilote Chrome 2.42.0.1 soit utilisé par cet agent auto-hébergé.

Toute aide sera très appréciée. Merci!


6 commentaires

Quel est votre pipeline? où voulez-vous que l'agent utilise le pilote?


Salut @ShaykiAbramczyk, notre QA veut l'utiliser pour leurs projets d'automatisation des tests d'interface utilisateur. Je vous remercie


Si vous installez seulement 2.42.0.1 donc je suppose que l'agent utilise cette version ... parce que c'est celle installée ... si votre question concerne le pipeline, vous devez donc partager le pipeline et où dans le pipeline vous exécutez l'interface utilisateur essai.


C'est possible, vous devrez peut-être écrire un PowerShell pour l'installer mais c'est possible. Je ne connais pas votre projet de test, mais si vous utilisez un test .net, vous pouvez apporter votre chromedriver via nuget, puis dans le buildoutput des tests, ce serait mieux que d'installer chromedriver


merci @ShaykiAbramczyk & @ DJ - J'ai déjà pu l'installer en suivant les étapes ici: npmjs.com/package / chromedriver :)


Génial! vous pouvez poster la solution comme réponse :)


3 Réponses :


1
votes

Installation que j'ai trouvée en utilisant npm install ici: :)

https://www.npmjs.com/package/chromedriver


0 commentaires

0
votes

C'est peut-être un post tardif, mais pour aider le forum, qui m'a aidé depuis près d'une décennie, voici comment nous l'avons réglé.

Par défaut, l'image "Azure Pipelines Hosted VS2017" (ou dans Classic Editor Agent Specification , elle s'appelle vs2017-win2016 ) dispose déjà de Google Chrome (version 77.0.3865.90 < em> au 3 décembre 2019 ) et ChromeDriver (77.0.3865.40 au 3 décembre 2019 ) préinstallés (Plus d'infos ici - https://github.com/Microsoft/azure- pipelines-image-generation / blob / master / images / win / Vs2017-Server2016-Readme.md )

Mais nous sommes toujours confrontés au problème du "sélénium-side-runner" incapable de trouver le ChromeDriver en raison du PATH manquant dans la variable System Variables of Environment de Windows.

Image - Pilote Chrome introuvable

Nous avons donc essayé de creuser un peu plus profondément et avons constaté que nous pouvions y parvenir en téléchargeant ChromeDriver via le processus de génération, puis en le copiant dans le dossier NodeJs de C: Program Files < / fort> ..! Doux?

Passons brièvement en revue les étapes pour voir comment cela est réalisé.

  1. Nous devons d'abord visiter https://chromedriver.chromium.org/downloads et recherchez la version du pilote correspondant à la version sur Chrome installé sur l'agent hébergé (version 77 dans notre cas comme sur date)
  2. Ensuite, nous créons un dossier dans nos Azure Repos et poussons à la fois le Chromedriver.exe et notre fichier Sample.side dans ce dossier (Side file peut être nommé selon vos préférences, et cela est généré à partir du Selenium IDE) Ajout de ChromeDriver.exe et du fichier sample.side dans le référentiel
  3. Nous créons maintenant le processus de construction pour compresser simplement le contenu de ce dossier et créez un artefact à partir de celui-ci à consommer dans le Pipeline de sortie. Explication de la création du pipeline
  4. Ensuite, nous construisons le pipeline de publication et nous nous assurons que le L'agent vs2017-win2016 est pris
  5. Les étapes assignées à l'agent comprennent:
  6. Extraction du fichier zip
  7. Installation de Selenium Side Runner à l'aide de NPM et personnalisé Commande - " install -g sélénium-side-runner "
  8. Nous devons ensuite copier ChromeDriver.exe à partir des fichiers extraits dans le dossier "C: \ Program Files \ nodejs" à l'aide de l'invite de commande - copier "chromedriver.exe" "C: \ Program Files \ nodejs"
  9. La dernière étape consisterait à exécuter le " selenium-side-runner " commande - sample.side selenium-side-runner
  10. Nous verrions le résultat du test à la fin de la tâche en vérifiant le fichier journal de la tâche.

J'espère que cela vous aidera ..!


0 commentaires

2
votes

Une autre solution pour utiliser des agents hébergés par Microsoft avec le pilote Chrome du navigateur Chrome déjà installé.

Les agents contiennent déjà une variable d'environnement avec l'emplacement de ChromeWebDriver sur l'agent (cela fonctionne pour «windows-2019» et «vs2017-win2016» Agents hébergés par Microsoft). Des pilotes Firefox et IE existent également sur les agents ( https : //github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md ).

Code C #:

ChromeOptions chromeOptions = new ChromeOptions();
var driverPath = Path.Combine(Directory.GetCurrentDirectory());
var envChromeWebDriver = Environment.GetEnvironmentVariable("ChromeWebDriver");
if(!string.IsNullOrEmpty(envChromeWebDriver) &&
   File.Exists(Path.Combine(envChromeWebDriver, "chromedriver.exe")))
{
    driverPath = envChromeWebDriver;
}
ChromeDriverService defaultService = ChromeDriverService.CreateDefaultService(driverPath);
defaultService.HideCommandPromptWindow = true;
var driver = (IWebDriver) new ChromeDriver(defaultService, chromeOptions);


1 commentaires

Excellente réponse, m'a sauvé la journée!