Selenium IWebDriver Navigate (). GoToUrl () URL nicht eingeben oder zur Seite navigieren

7

Ich erstelle ein neues Testprojekt und kann mir nichts anderes überlegen, um mein Problem zu lösen. Ich habe ein anderes Selenium-Projekt, das wie erwartet funktioniert und habe die beiden verglichen, um Unterschiede zu finden. Aber zuerst, das Hauptproblem, auf das ich stoße. Im Setup rufe ich Driver.Navigate () auf. GoToUrl ("www.test.com"); Es wird keine Ausnahme ausgelöst oder sonstwie, die darauf hinweist, dass ein Problem vorliegt. Der Fluss wird nur zur nächsten Anweisung weitergeleitet, aber es wird keine URL in die Navigationsleiste eingegeben. Daher navigiert der Fahrer offensichtlich nie auf eine Seite. Der Treiber startet eine neue Firefox-Instanz, bleibt aber leer.

Wenn ich dieses neue Projekt mit einem bereits laufenden Projekt vergleiche, scheinen sie größtenteils identisch zu sein. Beide Projekte haben ... \ packages \ Selenium.WebDriver.2.37.0 & amp; ... \ packages \ Selenium.Support.2.37.0 installiert mit dem NuGet Paketmanager. Beide Projekte haben identische Referenzen auf das Projekt in der .csproj-Datei - Arbeitsprojekt ...                           .... \ packages \ Selenium.WebDriver.2.37.0 \ lib \ net40 \ WebDriver.dll                 Falsch       .... \ packages \ Selenium.Support.2.37.0 \ lib \ net40 \ WebDriver.Support.dll     

- Unbearbeitetes Projekt ...                           .. \ packages \ Selenium.WebDriver.2.37.0 \ lib \ net40 \ WebDriver.dll                 .. \ packages \ Selenium.Support.2.37.0 \ lib \ net40 \ WebDriver.Support.dll     

Keines der Projekte macht etwas anderes. Der Konstruktor für beide Aufrufe einfach: var WebDriver = new FirefoxDriver ();

Wenn ich das WebDriver-Objekt untersuche, kann ich nur die WindowsHandles-Eigenschaft sehen. Das Arbeitsprojekt hat: WindowsHandles Count = 1

Das nicht arbeitende Projekt hat: WindowsHandles {System.Collections.ObjectModel.ReadOnlyCollection}

Ich habe keine Ahnung, warum sie anders sind, aber da es der einzige Unterschied ist, den ich finden kann, denke ich, dass das vielleicht das Problem ist, aber ich habe keine Ahnung, ob das wirklich der Fall ist oder wie ich es beheben würde. Ich habe einen try / catch-Block um den WebDriver.Navigate () hinzugefügt. GoToUrl () und keine Ausnahme wird abgefangen.
Beide Projekte zielen auf das .NET 4.0-Framework ab. Jede Hilfe ist sehr geeignet.

    
Darian Everett 26.11.2013, 22:15
quelle

4 Antworten

17

GD, natürlich finde ich es heraus, nachdem ich endlich zusammengebrochen bin und beschlossen habe, auf stackoverflow zu schreiben. Das Problem ist wie immer dumm dumm; anscheinend bestehen IWebDrivers auf einer übergebenen URL, die mit http beginnt. Sobald ich meine URL mit diesem Präfix versehen hatte, funktionierte es. smh

    
Darian Everett 26.11.2013 22:48
quelle
2

Hier ist ein einfaches Beispiel:

  1. Add NuGet Paket Selenium.WebDriver

  2. Laden Sie chromedriver ( Ссылка ) oder einen anderen Treiber von Ссылка (Abschnitt Drittanbieter-Browsertreiber, die NICHT von selenehq entwickelt wurden)

  3. Kopieren Sie die Datei in Ihr Projektverzeichnis in Visual Studio und legen Sie die folgenden Eigenschaften für die Datei fest:

    Build-Aktion = Keine; In Ausgabeverzeichnis kopieren = Kopieren wenn neuer

Versuchen Sie nach der Installation den folgenden Beispielcode auszuführen:

%Vor%

Viel Glück!

    
MZHm 07.11.2016 21:36
quelle
1

Auch

%Vor%

mit umgekehrten Schrägstrichen anstelle von Schrägstrichen wird auch nicht funktionieren ... Ich habe gerade eine Stunde gebraucht, um das herauszufinden.

URL-Adresse, muss korrekt mit Schrägstrichen sein.

    
Mateusz Sęczkowski 09.11.2016 21:00
quelle
0

Einfach auf die URL "http: //" verketten und dieses Problem ist gelöst. o.O. Ich weiß nicht warum, aber dieser Fehler ist gelöst. Mach es einfach!

    
RodolfoRomao 20.10.2017 16:34
quelle