我发现了Geb库非常奇怪的行为。
以下是我的测试示例:
Then(~'I should see that I\'m logged in') { ->
assert browser.find('div#loggedInBlock').isDisplayed()
}
它工作正常,但我担心超时,因为它需要一段时间来执行js和加载等,所以我像这里修改我的代码:
Then(~'I should see that I\'m logged in') { ->
browser.waitFor() {
assert browser.find('div#loggedInBlock').isDisplayed()
}
}
所以我希望如果出现意外延迟会有效。但我在这里得到了错误 - 这种情况意外地没有通过。如果我返回我的代码并删除'waitFor'它再次运行良好。
所以我很困惑,为什么会这样?
答案 0 :(得分:2)
由于waitFor
块的Geb 0.7.0内容被隐式声明,这意味着您不需要/不应该在其中使用assert关键字。请查看Book of Geb的implicit assertions部分,了解这意味着什么。