2017-02-22 10 views
0

Я пытаюсь автоматизировать вход в систему с помощью веб-сайта Selenium Chrome Web и C#. Выполнение следующего кода вызывает ошибку, указанную на снимках экрана один и два. Что я делаю не так? Похоже, что ошибка Google не показывает каких-либо релевантных результатов.Selenium Chrome Webdriver не работает

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

Я считаю, что это несоответствие версии. Какова версия используемого вами драйвера хрома и хрома? Я бы предложил попробовать с chrome 56 и chrome driver 2.28, который является последним. Похоже, у 57 хром может возникнуть проблема. –

ответ

0

Вы должны ждать загрузки страницы только после того, как GoToUrl:

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

Получение другой ошибки, но аналогичные результаты: Необработанное исключение типа «OpenQA.Selenium.WebDriverException» произошло в WebDriver.dll Дополнительная информация: Неожиданная ошибка. System.Net.WebException: невозможно подключиться к удаленному серверу ---> System.Net.Sockets.SocketException: соединение не может быть выполнено, потому что целевая машина активно отказалась от него :: 1: 62419 –

0

Я буду ждать загрузится страница.

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

Проверьте свои версии Chrome и ChromeDriver. См. Совместимость here. Также проверьте, что версия Selenium не устарела, хотя эти типы ошибок обычно возникают из-за совместимости версий.

Для справки, в настоящее время latests:

Chrome 56.0... 
ChromeDriver 2.27 
Selenium WebDriver 3.1.0 
0

Это ясно!

На странице "" отсутствует идентификатор "usr".

Что вы ищете? Вы ищете элемент на странице с атрибутом id, установленным в «usr», и нет такого элемента. Исключение составляет

Проведите осмотр элемента plz

Смежные вопросы