我正在尝试为CI硒测试设置无头铬。 我们的网络服务使用AD进行授权。无论出于何种原因,当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...
但是一旦我删除&#34;无头&#34;从参数,日志看起来像这样:
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]。
因此,似乎用户登录在&#34;无头&#34;模式。 到目前为止,我已经与#34; profile-directory = Default&#34;&#34;参数,以及运行旧版本的chrome(我现在使用的是Canary 61.0.3138.0 64bit - 最新版本。)
答案 0 :(得分:0)
刚出门,但https://user:pass@test.com/test做了什么?这就是我询问mainPageURL是什么的原因。
<强>更新强>
Alert alert = wait.until(ExpectedConditions.alertIsPresent());
alert.authenticateUsing(new UserAndPassword(**username**, **password**));
也许?