首页 > 解决方案 > 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') }

标签: karate

解决方案


请阅读文档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所以你可以在第二行更聪明。有很多选择,找到最适合您的方式。


推荐阅读