0

Ich versuche, eine Anmeldeseite unserer Software in Katalon Studio (es verwendet Selenium) zu testen, und Headless Chrome macht keinen iFrame, dass die Begrüßungsnachricht angezeigt wird. WebUI.verifyElementVisible schlägt fehl, während WebUI.verifyElementPresent erfolgreich ist. Der Screenshot zeigt es auch nicht. Headed Chrome führt den Test ohne Probleme durch.Div sichtbar in Überschrift Chrome, unsichtbar in Headless Chrome

Wenn ich Chrome von der Kommandozeile in Headless Modus ausgeführt wird, seine --dump-dom Option erzeugt ein verkürztes Ausgabe, aber ich kann sehen, dass die div Container für den iframe unsichtbar ist:

<div id="Div_AlertWin" style="position:absolute;display:none" onclose="fnLoginUnloadAlert()"> 

Wenn ich es überprüfen in der headed Chrome, dann ist es sichtbar,

<div id="Div_AlertWin" style="position: absolute; display: block; left: 183.5px; top: 218.5px;" onclose="fnLoginUnloadAlert()"> 

es sieht aus wie eine der Startup-JS-Skripte, die die div zeigt nicht richtig im kopflos Chrome laufen. Wie kann ich seine JS-Ausführung debuggen? Ich kann --remote-debugging-port nicht verwenden, da Appspot von der Firewall des Unternehmens blockiert wird.

Antwort

0

Gemäß der HTML Sie zur Verfügung gestellt haben, macht die Normal Chrome Browser die HTML DOM wie folgt:

<div id="Div_AlertWin" style="position: absolute; display: block; left: 183.5px; top: 218.5px;" onclose="fnLoginUnloadAlert()"> 

Wo, wie die Headless Chrome Browser die HTML DOM macht wie folgt:

<div id="Div_AlertWin" style="position:absolute;display:none" onclose="fnLoginUnloadAlert()"> 

So, hier müssen wir ändern zu style="position:absolute;display:block" und sie finden/suchen/suchen die WebElement wie folgt:

((JavascriptExecutor)driver).executeScript("document.getElementById('Div_AlertWin').style.display='block';"); 
WebElement element = driver.findElement(By.id("Div_AlertWin")); 
+0

Aber warum tut es das? Es gibt ein JS-Skript, das den Stil des Elements ändert, das von 'onload' ausgelöst wird. Wie kann ich herausfinden, warum es in Headless nicht korrekt ausgeführt wird? – Alexey

+0

@Alexey Wenn Sie mir bestätigen können, dass die Lösung für Sie funktioniert, kann ich Ihnen erklären, welche Lösung ich anbietet und wie sie funktioniert. – DebanjanB

+0

Ich kann es nicht bis zum 13. testen. Ich melde mich dann bei dir. – Alexey