【发布时间】:2014-04-21 20:22:57
【问题描述】:
当我点击一个按钮时,我必须等待一些动态内容被渲染。当我将 waitFor 闭包放在测试中时,它可以正常工作。但是,我想将 waitFor 放在 Page 对象内的一个方法中,这样我就不必在每次单击后总是调用 waitFor ,但是当我这样做时它会失败,说明它找不到该属性。
这不起作用:
class LandingPage extends Page {
static content = {
resultsBtn(to: ResultsPage) { $("button", id: "showresults") }
}
void getResults() {
resultsBtn.click()
waitFor { ResultsPage.results.displayed }
}
}
class ResultsPage extends Page {
static content = {
results { $("div", id: "listresults") }
}
}
class ShowResults extends GebReportingTest {
@Test
public void displayResults() {
to LandingPage
getResults()
}
}
错误状态类似于“没有这样的属性:ResultsPage 类的结果”。
是否可以将来自其他页面对象的内容引用放在其他页面对象方法中?
编辑:我觉得这更像是 Groovy 特定的东西,而不是 Geb。我不确定是否可以访问内容闭包中的绑定。但似乎在页面对象内创建一个 getVariable() 函数也没有多大帮助。
【问题讨论】:
标签: groovy automated-tests geb pageobjects