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**));
也许?