我想测试的网站有一个登陆页面,要求您选择一种语言。您可以通过在网址中添加额外参数来跳过此问题。我希望使用Geb
和Spock
作为测试框架来测试此行为。
所以我的语言选择着陆页:
class LanguageSelectionPage extends Page {
static url = "http://localhost:8080/registration/"
static at = { $("form#languageForm") }
}
重定向到的第二页:
class InsertCardReaderPage extends Page {
static at = { welcomeTitle1 }
static content = {
welcomeTitle1(wait: true, cache: false) { $("#eidWelcomeTitle1") }
welcomeTitle2(wait: true, cache: false) { $("#eidWelcomeTitle2") }
}
}
(我已从粘贴的代码中删除了一些方法)
所以这是我的测试:
given:
to LanguageSelectionPage, "09";
expect:
at InsertCardReaderPage;
“09”是网址中的一个额外参数,当此网址可用时,您将立即被服务器重定向(http重定向,因此页面确实会更改)到InsertCardReaderPage
。现在,我的问题是to
语句对at
闭包执行隐式断言。这个失败是因为你已经从页面重定向了。
在这种情况下,是否有办法有条件地禁用此隐式断言?或者任何其他提案如何设置页面?我对Geb
很新,在这种情况下无法找到任何似乎对我有帮助的文档。
答案 0 :(得分:6)