我正在尝试在Katalon Studio中测试我们软件的登录页面(它使用Selenium),并且无头Chrome不会呈现iframe显示欢迎消息。WebUI.verifyElementVisible
失败而{ {1}}成功。屏幕截图也没有显示。标题Chrome运行测试没有打嗝。
当我在无头模式下从命令行运行Chrome时,其WebUI.verifyElementPresent
选项会产生截断输出,但我可以看到iframe的div容器是不可见的:
--dump-dom
当我在标题Chrome中查看它时,它是可见的,
<div id="Div_AlertWin" style="position:absolute;display:none" onclose="fnLoginUnloadAlert()">
它看起来像一个启动的JS脚本,显示div无法在无头Chrome中正确运行。如何调试其JS执行?我无法使用<div id="Div_AlertWin" style="position: absolute; display: block; left: 183.5px; top: 218.5px;" onclose="fnLoginUnloadAlert()">
,因为appspot被公司防火墙阻止。
答案 0 :(得分:0)
根据您提供的HTML,Normal Chrome Browser
会将HTML DOM
呈现如下:
<div id="Div_AlertWin" style="position: absolute; display: block; left: 183.5px; top: 218.5px;" onclose="fnLoginUnloadAlert()">
Headless Chrome Browser
呈现HTML DOM
的位置如下:
<div id="Div_AlertWin" style="position:absolute;display:none" onclose="fnLoginUnloadAlert()">
所以我们需要更改为style="position:absolute;display:block"
,然后按以下方式查找/定位/搜索WebElement
:
((JavascriptExecutor)driver).executeScript("document.getElementById('Div_AlertWin').style.display='block';");
WebElement element = driver.findElement(By.id("Div_AlertWin"));