根据"Book of Geb",我开始绘制门户网站的网页.我更喜欢使用静态内容闭包块中定义的变量,然后在页面方法中访问它们:
static content = {
buttonSend { $("input", type: "submit", nicetitle: "Senden") }
}
def sendLetter() {
waitFor { buttonSend.isDisplayed() }
buttonSend.click()
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,有时候我会得到Geb等待超时异常(60秒后),甚至更糟糕的是我收到了众所周知的"StaleElementReferenceException".
使用"isEnabled"代替"isDisplayed"时可以避免等待超时,但对于"StaleElementReferenceException",我只能应用以下解决方案:
def sendLetter() {
waitFor { buttonSend.isEnabled() }
try {
buttonSend.click()
} catch (StaleElementReferenceException e) {
log.info(e.getMessage())
buttonSend.click()
}
}
Run Code Online (Sandbox Code Playgroud)
我想,这个解决方案并不是很好,但我无法应用另一篇文章中描述的明确等待.因此,我有一些一般性的问题:
我希望每一个有助于理解或解决这个问题的提示.最好的方法是拥有一个简单的代码示例,因为我还是初学者.谢谢!