karate - WaitFor空手道测试中的2个不同结果
问题描述
我们有一个组件需要更多时间来构建,我们想用空手道测试它:
retry(120, 1000).waitForText('h1', 'Successful')
h1 元素中可以有更多状态(Waiting、Building),但错误通常几乎立即显示。我们如何将 waitForText 置于这两种最终状态之间的条件和差异上?像这样的东西
retry(120, 1000).if (waitForText('h1', 'Successful')) { ...continue with tests } elseif(waitForText('h1', 'Error')) { karate.fail('Error occured') }
解决方案
请阅读文档optional()
和exists()
:https ://github.com/intuit/karate/tree/master/karate-core#optional
也很可能waitForAny()
会解决这个问题:https ://github.com/intuit/karate/tree/master/karate-core#waitforany
* retry(120, 1000).waitForAny('{h1}Successful', '{h1}Error')
* if exists('{h1}Error') karate.fail('error occurred')
上面的第一行实际上会返回,Element
所以你可以在第二行更聪明。有很多选择,找到最适合您的方式。
推荐阅读
- yosys - yosys综合-for循环中的语法错误
- python-2.7 - 使用 swig 将 Python2 Unicode 转换为 std::string 的方法
- mysql - 不能创建超过 max_prepared_stmt_count 个语句
- c++ - 努力将指向成员函数的指针绑定到类模板的 T 成员,然后在插槽中调用
- python - 如何根据时间戳将数据帧与json数据同步或合并
- python - Pandas - 在列中查找最长的字符串值连串以及行 ID
- android - 无法连接到端口:5037 上的 adb 守护进程
- ios - 是否可以访问 xcode 中的所有通知
- batch-file - 如何使用 bat 删除具有特定名称的文件夹但不删除具有该名称的子文件夹?
- c# - 如何在 WPF 中异步更新视图模型?