【发布时间】:2015-11-24 12:40:32
【问题描述】:
鉴于geb.Page 喜欢:
class ConsultaPage extends Page {
static url = "web/search-basic"
static content = {
titol { $('h4',0).text() }
searchBox { $(name: "criteria").module(TextInput) }
searchButton { $(By.id("submit_button")) }
seriesBuscadorButton { $('img', src:"/web/resources/img/find") }
}
static at = {
$("#serveis h2").text() == "Menú consulta"
}
void openSeriesBuscador(){
seriesBuscadorButton.click()
}
}
还有一个像这样的规范:
class id_3031_PageSpec extends BaseGebSpec {
def "login ok com usuari normal accedeix a consulta i obre minibuscador series"(){
given:
via iArxiuPage
when:
// unrelated stuff...
then:
to ConsultaPage
and:
//this works -> $('img', src:"/refweb/resources/img/find")*.click()
//this also works-> seriesBuscadorButton.click()
openSeriesBuscador()
then:
titol.equals("Cerca i selecció de sèrie")
}
}
(BaseGebSpec 只是一个带有通用 setupSpec() 的 GebSpec,用于读取所有规范的公共属性)
如果我运行它,我会得到:
Condition not satisfied:
openSeriesBuscador()
|
null
Condition not satisfied:
openSeriesBuscador()
|
null
如果不使用:
openSeriesBuscador() 方法(使用具有相同 $() 逻辑的内容变量)
我使用$('img', src:"/refweb/resources/img/find").click() 或seriesBuscadorButton.click() 效果很好。
我认为我没有正确理解内容变量的功能或访问方式,但我无法通过 Geb Book 找到它。谁能帮我理解这种行为?
为什么在方法的页面中访问静态内容变量会失败,但不能从 Spec 类中访问? 提前致谢!
【问题讨论】: