protractor - 如何使 Protractor 的 browser.wait() 更冗长?
问题描述
在量角器测试中,我调用了很多次browser.wait
方法,例如等待特定元素出现在屏幕上或者它是可点击的。
在许多情况下,测试在我的本地机器上通过,但在其他机器上没有。我收到有关超时的非常通用的信息,这对我调试/查找问题来源没有多大帮助。
是否可以browser.wait
更冗长,例如:
- 如果在等待特定元素时至少
defaultTimeoutInterval
会过去,是否有可能获得console.log
有关它试图等待的元素的信息, - 发生超时错误时截图,
- 出现超时时提供完整的调用堆栈
browser.wait
解决方案
如果主要问题是您不知道等待超时的元素,我建议为等待编写一个辅助函数并使用它而不是等待,例如:
wait = function(variable, variableName,waitingTime){
console.log('Waiting for ' + variableName);
browser.wait(protractor.ExpectedConditions.elementToBeClickable(variablename),waitingTime);
console.log('Success');
}
因为量角器在第一次失败后停止执行测试,如果等待超时,控制台将不会在加载某个元素失败后打印成功消息。
对于我建议尝试的屏幕截图protractor-jasmine2-screenshot-reporter
,它会生成一个易于阅读的 html 报告,其中包含有关失败测试的屏幕截图和调试信息(例如,发生故障的代码行)。
推荐阅读
- go - 切片函数在 go 中的文本/模板中不起作用
- reactjs - 无法在功能组件中调用 useContext
- python - 将条件、输入转换和数学放在一起
- php - 如何在 mySQL 查询中有 IF 条件?
- html - 尝试通过从服务器获取值来显示下拉选项
- android - GestureDetector 在 ListWheelScrollView 中不起作用
- sql - 如何将列中的值减少为单个值 SQL
- sql - Postgres:一个布尔真所有其他假检查约束?
- python - json.decoder.JSONDecodeError:期望','分隔符:第 1 行第 63 列(字符 62)
- python-3.x - 第二次调用相同的函数会导致类中的错误