我有一个 e2e Protractor 测试,它在 headless 模式下通过,但在常规浏览器测试中失败。它在常规浏览器测试中失败的可能原因是什么?
注意:我使用的是 Chrome 版本 68.0.3440.106(官方构建)(64 位)来运行测试。
最佳答案
这是我学到的:
<强>1。非 headless 模式需要被告知滚动,而 headless 模式不需要被告知滚动就可以。
在非 headless 模式下,如果您不滚动到正在使用的元素,它会抛出超时错误“等待元素”出现。
我的原始代码(在 headless 模式下通过但在非 headless 模式下失败)是这样的:
command to do something
command to click button
新代码(同时传入 headless 和非 headless ):
import import { browser, element } from 'protractor';
// assuming my protractor DOM element is called 'thing'
command to do something
browser.executeScript('thing.scrollIntoView()', element.getWebElement());
command to click button
<强>2。非 headless 模式在操作之间需要更多等待。
我的原始代码(在 headless 模式下通过但在非 headless 模式下失败)是这样的:
command to do something
command to do something else
新代码(同时传入 headless 和非 headless ):
command to do something
browser.waitForAngularEnabled(false);
command to do something else
关于javascript - e2e 测试 : Headless mode test passes, 常规模式失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52104395/