2015-09-03 16 views
6

Я пытаюсь использовать драйвер Selenium HtmlUnit в тестах C#. Насколько я знаю, единственный способ использовать драйвер HtmlUnit в C# через Selenium сервер и RemoteWebDriver:Проверка подлинности NTLM в Selenium RemoteWebDriver

var driver = new OpenQA.Selenium.Remote.RemoteWebDriver(
    OpenQA.Selenium.Remote.DesiredCapabilities.HtmlUnitWithJavaScript()); 

Однако, мне также нужно использовать проверку подлинности NTLM. Использование без удаленного драйвера в Java, он, очевидно, может быть настроен так:

WebDriver driver = new HtmlUnitDriver() {  
    protected WebClient modifyWebClient(WebClient client) { 
     // Does nothing here to be overridden. 
     DefaultCredentialsProvider creds = new DefaultCredentialsProvider(); 
     creds.addNTLMCredentials("userName", "password", null, -1, "myComputerName", "myDomain"); 
     client.setCredentialsProvider(creds); 

     return client; 
    } 
} 

(Источник: https://groups.google.com/forum/#!topic/webdriver/ktIWIs5m0mQ)

Но это, очевидно, не решить мою проблему, так как я использую C#. Как я могу это сделать ? (Я могу использовать Chrome успешно, но я бы хотел использовать HtmlUnit для скорости).

Спасибо!

+0

Какую версию вы используете? Вы установили его с помощью Nuget или просто загрузили zip и ссылались на DLL? –

+0

На странице запрашиваются учетные данные? –

+0

Рассматривали ли вы просто преобразование HtmlUnitDriver? http://blog.stevensanderson.com/2010/03/30/using-htmlunit-on-net-for-headless-browser-automation/ –

ответ

1

Чтобы передать учетные данные, необходимые для перегрузки modifyWebClient в HtmlUnitDriver, как вы видели в ссылке дискуссионной .

для разработчиков .NET единственный способ использовать HtmlUnitDriver это через RemoteWebDriver, и на основе обсуждения HtmlUnit wrapper for .NET разработчики решили не выставлять все классы HtmlUnit драйвера:

I «м ненавидят принимать какие-либо больше зависимостей в привязках .NET ... Если вы мертвы, установлены на использование HtmlUnit в качестве обезглавленного браузера выбора, вы всегда можете использовать его через RemoteWebDriver

Поэтому вы не можете использовать NTLM или любой другой метод учетных данных с помощью RemoteWebDriver.

Если вы были готовы выполнить и сохранить работу, вы можете конвертировать весь код HtmlUnit, как указано во второй ссылке ответа @ JasonPlutext .

  1. Оригинальный образец, как представляется, от selenium FAQ.
  2. Связанный с Is there an HtmlUnitDriver for .NET? here on SO.

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

  • Нет связанных вопросов^_^