Ich versuche, Headless-Chrom für CI-Selentests einzurichten. Unser Webservice verwendet AD zur Autorisierung. Aus welchem Grund auch immer, wenn der Chrome-Treiber auf Headless-Modus eingestellt ist, erhält er "Access is Denied - 401.2", wenn er versucht, auf eine unserer Service-Seiten zuzugreifen. Aber sobald ich es normal starte (mit Fenster im Gegensatz zu kopflos), funktioniert alles gut.Chrome Webdriver verliert Benutzerdaten im Headless-Modus
Hier ist, wie ich einrichten 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);
Nach dem Versuch, alle Tests mit diesem Setup zu laufen (und immer 401.2) IIS-Protokolle etwas wie folgt aus:
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...
Aber sobald I „kopflos“ von Argumenten entfernen, Protokolle wie folgt aussehen:
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...
Mit dem Login anstelle von [USER_L OGIN].
So scheint es, dass Benutzeranmeldung im "Headless" -Modus verloren geht. Bis jetzt habe ich die Ignorierung gebunden, lief mit dem Argument "profile-directory = Default" und liefere eine ältere Version von chrome (ich bin momentan auf Canary 61.0.3138.0 64bit - neuste Version).
Worin besteht die "mainPageURL" genau? – IamBatman