Selenium WebDriver.ChromeDriver Nuget package installé, mais ne fonctionne pas pour MSTest
J'ai ajouté le WebDriver.ChromeDriver package nuget pour ma solution, qui contient les ChromeDriver.exe fichier, nécessaire pour Selenium WebDriver pour exécuter des tests automatisés à l'aide de Chrome. En regardant le contenu du paquet, il contient simplement le fichier fichier suivant:
tools\chromedriver.exe
Ce que c'est censé à faire est d'ajouter ce dossier à la variable d'environnement PATH pour que chromedriver.exe est accessible via le code suivant (c'est dans un UnitTest projet à l'aide de MSTest):
[TestMethod]
public void LaunchWebsite_Chrome()
{
//create ChromeDriver - this should work if chromedriver.exe
//is known to the environment PATH variable
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("http://localhost/");
}
Cependant, je suis encore en train de l'exception suivante:
L'chromedriver.exe le fichier n'existe pas dans le répertoire courant ou dans un répertoire à la variable d'environnement PATH. Le pilote peut être téléchargé à http://code.google.com/p/chromium/downloads/list.
À la recherche à la nuget de la documentation, il suggère que quelque chose dans le outils dossier du package nuget sera ajouté à la variable d'environnement PATH automatiquement:
http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package: Le dossier outils d'un paquet est de scripts powershell et les programmes accessible depuis le Gestionnaire de paquets de la Console. Après le dossier est copié dans le projet cible, il est ajouté à la `$env:Chemin d'accès (PATH) de la variable d'environnement.
Cependant, cela ne semble pas fonctionner. J'ai même exécuter echo %PATH%
sur la ligne de commande et qu'il ne montre pas mon dossier outils d'enregistrement.
Ce que je fais mal?
- Avez-vous trouvé une réponse à cette question?
- Pas vraiment, mais je pense que j'ai juste mal compris ce que le réglage de l' $env:Chemin d'accès (PATH) de la variable d'environnement signifie - je présume que c'est uniquement défini lors de l'installation du paquet. J'ai utilisé la solution de contournement décrite par @Arran
Vous devez vous connecter pour publier un commentaire.
Je ne vous embêtez pas avec le package NuGet pour cela, simplement parce que ce n'est pas une bibliothèque de classe - qui est techniquement ce que NuGet est tout au sujet. ChromeDriver a également été mis à jour plusieurs fois depuis la libération.
De toute façon, je dirais que je viens de faire la même chose pour voir ce que la question est:
Vous sont probablement de tomber sur le point 4. Ce paramètre est défini à Ne pas faire de copier par défaut.
Je l'ai mis à "Copier", qui, toujours, qui a entraîné une erreur lorsque j'essaie de le reconstruire. Le paramètre "Copier si plus récent" fonctionne très bien.
J'ai eu le même problème résolu par ces 3 étapes
1.Goto google chrome pilotes site officiel
https://sites.google.com/a/chromium.org/chromedriver/downloads
télécharger et décompresser
2.Goto Visual Studio explorateur de solutions, cliquez sur ajouter -> fichier existant -> sélectionnez chrome pilote
3.Clic droit sur chrome pilote dans VS et sélectionnez propriétés pour toujours copier
Télécharger pilote connexes et ajouter le chemin d'accès local.
Le package Nuget aura lieu le driver.exe fichier {buildconfiguration}/
Pour lui dire de regarder dans la racine de l'application, passer un "." lors de la création d'une nouvelle instance du pilote.
J'ai dû utiliser une combinaison des réponses fournies. Tout d'abord, j'ai eu à faire l'étape de génération de copie de la chromedriver.exe à la sortie. J'ai utilisé Arrans réponse pour ce faire. Si vous ne souhaitez pas installer VS, je soupçonne que vous avez seulement besoin de modifier votre fichier de projet pour inclure ce:
Il ne fonctionne toujours pas. J'ai ensuite eu à modifier mon code pour utiliser RnDrxs réponse en changeant mon chrome pilote pour