如何用geb干?

时间:2016-03-23 07:19:53

标签: groovy geb

我发现我不得不重复自己的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() =~ /\{/
}

2 个答案:

答案 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来满足你的要求。