Проверка подлинности NTLM в Selenium RemoteWebDriver

Я пытаюсь использовать драйвер Selenium HtmlUnit в тестах С#. Насколько я знаю, единственный способ использовать драйвер HtmlUnit в С# - через Selenium server и 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)

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

Спасибо!

1 ответ

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

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

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

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

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

licensed under cc by-sa 3.0 with attribution.