1

我正在尝试在 Katalon Studio 中测试我们软件的登录页面(它使用 Selenium),并且无头 Chrome 不会呈现显示欢迎消息的 iframe。成功WebUI.verifyElementVisible时失败WebUI.verifyElementPresent。截图也没有显示。Headed Chrome 可以毫无问题地运行测试。

当我在无头模式下从命令行运行 Chrome 时,它​​的--dump-dom选项会产生一个截断的输出,但我可以看到 iframe 的 div 容器是不可见的:

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

当我在带头的 Chrome 中检查它时,它是可见的,

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

它看起来像一个启动 JS 脚本,显示 div 在无头 Chrome 中没有正确运行。如何调试它的 JS 执行?我无法使用--remote-debugging-port,因为 apppot 被公司防火墙阻止。

4

1 回答 1

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"));
于 2017-11-02T11:14:21.320 回答