3

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).

+0

Worin besteht die "mainPageURL" genau? – IamBatman

Antwort

0

Einfach nur auf einen Zweig gehen, aber was macht https://user:[email protected]/test? Deshalb habe ich gefragt, woraus mainPageURL besteht.

UPDATE:

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

Vielleicht?

+1

Ich habe versucht, Benutzername und Passwort mit URL wie Sie vorgeschlagen übergeben - nichts traurig zu dosieren. MainUrl ist nur eine Zielseite unseres Dienstes, etwa http: //service-test.loc – smoothRenegade

Verwandte Themen