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