2013-11-19 4 views
6

Я изучаю phantomjs как возможное решение для автоматизации пользовательского интерфейса в своем последнем проекте, но я не могу заставить Windows проверять правильность работы. Я пробовал установить page.settings.userName и page.settings.password, но ниже снизу находится , и базовый стек не прилагает никаких усилий для его устранения. Мой поиск-фу провалил меня, поэтому я пришел в сообщество, чтобы попросить о помощи.Проверка подлинности Windows с использованием phantomjs

var page = require('webpage').create(); 

page.onResourceReceived = function(response) { 
    phantom.exit(response.status); 
}; 

page.open('http://bing.com'); 

ответ

0

Для меня этот случай работает идеально. mike-rogers solution

var _driverOptions = new PhantomJSOptions(); 
var _driverService = PhantomJSDriverService.CreateDefaultService(); 
_driverOptions.AddAdditionalCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"); 
_driver = new PhantomJSDriver(_driverService, _driverOptions); 


using (Impersonation.LogonUser(domain, login, pass, LogonType.Interactive)) 
{ 
    using (var proxy = new NtlmProxy(new Uri("http://yoursite.com/"), options)) 
    { 
     _driver.Navigate().GoToUrl(url); 
    } 
} 
2

Существует открытый PhantomJS Issue с текущей дискуссией. Похоже, что PhantomJS не поддерживает (автоматическую/интегрированную) аутентификацию NTLM, что означает, что она не будет работать против сервера, для которого требуется встроенная проверка подлинности Windows.

+0

Любые обновления по этой проблеме? теперь phantomjs поддерживает windows auth? – SharpCoder

+0

Похоже, что Phantom JS 2.0 может быть создан для поддержки аутентификации NTLM/Kerberos. Хотя это не похоже на то, что это делается из коробки. См. - https://github.com/ariya/phantomjs/issues/13262 –

0

Вы можете добавить свои учетные данные домена в URL:

var driver = new PhantomJSDriver(); 
driver.Manage().Window.Size = new System.Drawing.Size(1024, 1024); 
driver.Url = "http://myusername:[email protected]/myapp"; 

Я думаю, что это может быть версия 2 вещь, я не уверен. AFAIK не поддерживает передачу учетных данных текущего пользователя, что является позором.

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