5

Ich habe dasnuget-Paket zu meiner Lösung hinzugefügt, die die ChromeDriver.exe-Datei enthält, die für Selenium WebDriver erforderlich ist, um automatisierte Tests mit Chrome auszuführen. Mit Blick auf den Packungsinhalt, es enthält nur die Datei folgende Datei:Selenium WebDriver.ChromeDriver Nuget-Paket installiert, aber nicht für MSTest

tools\chromedriver.exe

Was soll um diese Ordner in die Umgebungsvariable PATH tun hinzufügen, so dass chromedriver.exe über zugänglich ist der folgende Code (dies ist in einem Unittest-Projekt mit 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/"); 
} 

aber ich bin immer noch die folgende Ausnahme erhalten:

Die Datei "chromedriver.exe" ist nicht im aktuellen Verzeichnis oder in einem Verzeichnis in der PATH-Umgebungsvariablen vorhanden. Der Treiber kann unter http://code.google.com/p/chromium/downloads/list heruntergeladen werden.

an der nuget Dokumentation Sehen, schlägt er vor, dass alles in den Tools Ordner des nuget Paket an die Umgebungsvariable PATH automatisch hinzukommen:

http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package: Ordner Tools eines Pakets Dies ist für Powershell-Skripte und -Programme, auf die über die Package Manager Console zugegriffen werden kann. Nachdem der Ordner in das Zielprojekt kopiert wurde, wird er der Umgebungsvariablen $ env: Path (PATH) hinzugefügt.

Dies scheint jedoch nicht zu funktionieren. Ich habe sogar echo %PATH% in der Befehlszeile ausgeführt und es zeigt meinen Werkzeugordner nicht als registriert an.

Was mache ich falsch?

+0

Haben Sie eine Antwort auf diese Frage finden zu kopieren? – Phphelp

+0

Nicht wirklich, aber ich denke, ich habe nur missverstanden, was bedeutet, dass die Umgebungsvariable $ env: Path (PATH) bedeutet - ich nehme an, dass es nur während der Installation des Pakets gesetzt wird. Ich habe die von @Arran beschriebene Problemumgehung verwendet. –

Antwort

10

Ich würde mich nicht mit dem NuGet-Paket dafür beschäftigen, einfach weil es keine Klassenbibliothek ist - was technisch gesehen das ist, was NuGet ausmacht. ChromeDriver wurde seit dieser Version ebenfalls mehrmals aktualisiert.

Wie auch immer, ich würde sagen, dass ich gerade das gleiche getan, um zu sehen, was das Problem ist:

  1. Herunterladen NuGet Paket
  2. Visual Studio verwenden, ein neues Objekt in das Projekt durch rechts- hinzufügen auf das Projekt klicken - Item> Add -> Vorhandenes Element
  3. Navigieren und wählen Sie die chromedriver.exe
  4. ändern sich die Eigenschaften „auf Ausgabeverzeichnis kopieren“, um sicherzustellen, ist auf Kopieren immer.

Sie fallen wahrscheinlich auf den Punkt nach unten 4. Diese Einstellung nicht gesetzt ist standardmäßig kopieren Sie.

+2

Das manuelle Hinzufügen der Datei ist eine gute Arbeit, aber irgendwelche Ideen, warum NuGet den Ordner "tools" nicht zur Umgebungsvariablen PATH hinzufügt? (Es ist Dokumentation schlägt vor, dass es sollte) –

+0

Ich frage mich, ob Visual Studio als Administrator für die Pfadvariablen ausgeführt werden muss, um gesetzt werden zu können? –

+0

Ich habe dies versucht - den Taucher manuell im Projektstamm hinzufügen, nach der Installation des NuGet-Pakets. Das Ergebnis war, dass jedes Mal, wenn ich versuchte, den Code auszuführen, zwei Instanzen von "chromedriver.exe" gestartet wurden. Und dann, als ich versuchte, es erneut auszuführen, funktionierte es nicht, weil die "chromedriver.exe" von einem anderen Prozess verwendet wurde. Der Wechsel von Release zu Debugging funktioniert genau EINMAL, dann nie wieder. Diese Lösung ist bestenfalls flockig und hätte NICHT als Antwort imo akzeptiert werden sollen. –

0

Ich legte es auf "Kopieren", was immer zu einem Fehler führte, wenn ich versuche, es neu zu erstellen. Die Einstellung "Copy if newer" funktioniert einwandfrei.

0

hatte ich ähnliches Problem löste es durch diese drei Schritte

1.Goto google chrome Treiber

2.Goto Visual Studio Projektmappen-Explorer, klicken Sie Add offizielle Seite https://sites.google.com/a/chromium.org/chromedriver/downloads herunterladen und entpacken -> vorhandene Datei - > wählen Chrom Fahrer

in VS auf Chrom-Treiber 3.Right klicken und wählen Sie Eigenschaften festlegen es immer