我发现我不得不重复自己的GEB断言。
例如,在我的许多断言之前需要这样做:
browser.$("h3", text: "Example Error Response").siblings("div").find("pre", 'data-language':'javascript')
保存可以重复使用的查找规范的模式是什么?
请记住,查找是使用“断言”,因此必须在浏览器处于特定状态时执行(即,我无法进行一次查找并保存结果)。
对于上下文,这是一个完整的例子:
Given(~'I should see the example error response on the page') { ->
assert browser.$("h3", text: "Example Error Response").siblings("div").find("pre", 'data-language':'javascript').text() =~ /\}/
assert browser.$("h3", text: "Example Error Response").siblings("div").find("pre", 'data-language':'javascript').text() =~ /\{/
}
答案 0 :(得分:0)
要干,我现在正在这样做:
class ExampleErrorResponse {
static Object get(browser) {
return browser.$("h3", text: "Example Error Response").siblings("div").find("pre", 'data-language':'javascript');
}
}
我可以这样使用:
Given(~'I should see the example error response on the page') { ->
assert ExampleErrorResponse.get(browser).text() =~ /\}/
assert ExampleErrorResponse.get(browser).text() =~ /\{/
}
如果您发现此方法存在任何问题/陷阱,请发表评论。
答案 1 :(得分:0)
感觉你应该使用Geb的built-in support for the Page Object pattern来满足你的要求。