Chrome Webdriver在无头模式下失去用户凭证



im试图为CI硒测试设置无头铬。我们的网络服务正在使用广告进行授权。无论出于何种原因,当ChromeDriver设置为无头模式时,它将被"访问被拒绝-401.2"。但是,一旦我正常启动它(带有窗户而不是无头的窗口(,一切都很好。

这是我设置WebDriver的方式:

var chromeOptions = new ChromeOptions{
    BinaryLocation = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"/AppData/Local/Google/Chrome SxS/Application/chrome.exe"
};
chromeOptions.AddArguments(new List<string>() { "headless", "disable-gpu", "no-sandbox" });
var driver = new ChromeDriver(chromeOptions);
driver.Navigate().GoToUrl(mainPageURL);

尝试使用此设置运行任何测试(并获得401.2(IIS记录这样的内容:

2017-06-23 11:25:12 ::1 GET / - 39731 - ::1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+HeadlessChrome...

但是,一旦我从参数中删除"无头",日志就这样:

2017-06-23 11:26:15 ::1 GET / - 39731 [USER_LOGIN] ::1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome...

用我的登录代替[user_login]。

因此,在"无头"模式下,用户登录似乎丢失了。到目前为止,我将势力与" profile -directory =默认"参数运行,然后运行旧版本的chrome(我当前在金丝雀61.0.3138.0 64bit上,最新可用(。

只是在肢体上外出,但是https://user:pass@test.com/test做什么?这就是为什么我问mainpageUrl是什么。

更新:

Alert alert = wait.until(ExpectedConditions.alertIsPresent());     
alert.authenticateUsing(new UserAndPassword(**username**, **password**));

也许?

最新更新