2017-02-22 3 views
0

Ich versuche, die Anmeldung in einer Website mit Selenium Chrome Webdriver und C# zu automatisieren. Wenn Sie den folgenden Code ausführen, wird der in Abbildung 1 und 2 aufgeführte Fehler ausgegeben. Was mache ich falsch? Googeln des Fehlers scheint keine relevanten Ergebnisse zu zeigen.Selenium Chrome Webdriver funktioniert nicht

using System.Drawing.Imaging; 
using System.IO; 
using OpenQA.Selenium.Chrome; 

namespace WebDriverTest 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      // Initialize the Chrome Driver 
      using (var driver = new ChromeDriver()) 
      { 
       // Go to the home page 
       driver.Navigate().GoToUrl("https://twitter.com/");      
       // Get User Name field, Password field and Login Button 
       var userNameField = driver.FindElementById("usr"); 
      } 
     } 
    } 
} 

enter image description here

An unhandled exception of type 'OpenQA.Selenium.WebDriverException' occurred in WebDriver.dll. 
    Additional information: A exception with a null response was thrown 
sending an HTTP request to the remote WebDriver server for 
URL http://localhost:61724/session/cc7bae393b288855ed8169dade774baa/element. 
The status of the exception was ReceiveFailure, and the message was: 
The underlying connection was closed: An unexpected error occurred on a receive. 

enter image description here

+0

Ich glaube, dies ist ein Versionskonflikt. Welche Version von Chrome und Chrome verwenden Sie? Ich würde vorschlagen, mit Chrome 56 und Chrome-Treiber 2.28, die neuesten ist. Sieht so aus, als hätte 57 Chrome ein Problem. –

Antwort

0

Sie haben die Seite geladen nach GoToUrl nur warten:

driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(10)); 
+0

Ermitteln eines anderen Fehlers, aber ähnliche Ergebnisse: Eine nicht behandelte Ausnahme vom Typ 'OpenQA.Selenium.WebDriverException' ist in WebDriver.dll aufgetreten. Weitere Informationen: Unerwarteter Fehler. System.Net.WebException: Verbindung zum Remote-Server konnte nicht hergestellt werden ---> System.Net.Sockets.SocketException: Es konnte keine Verbindung hergestellt werden, da der Zielcomputer dies aktiv ablehnte :: 1: 62419 –

0

Ich würde warten, bis die Seite zu laden.

public static void WaitForElementLoad(By by, int timeoutInSeconds) 
{ 
    if (timeoutInSeconds > 0) 
    { 
     WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(timeoutInSeconds)); 
     wait.Until(ExpectedConditions.ElementIsVisible(by)); 
    } 
} 

curtosey How to wait for element to load in selenium webdriver?

0

Überprüfen Sie Ihre Versionen von Chrome und ChromeDriver. Siehe Kompatibilität here. Überprüfen Sie auch, ob Ihre Selenium-Version nicht veraltet ist, obwohl diese Art von Fehlern in der Regel aufgrund der Kompatibilität der Versionen auftritt.

Als Referenz aktuelle latests:

Chrome 56.0... 
ChromeDriver 2.27 
Selenium WebDriver 3.1.0 
0

Es ist klar!

Es gibt kein Element auf der Seite "http://twitter.com" mit der ID "usr".

Wonach suchen Sie? Sie suchen nach einem Element auf der Seite, deren ID-Attribut auf "usr" gesetzt ist, und es gibt kein solches Element. Die Ausnahme, sagt sie

ein Element inspizieren Sie plz

Verwandte Themen