如何检查你已经登陆Geb的几个页面之一

时间:2015-01-14 21:54:24

标签: groovy cucumber geb

我是Groovy的新手,使用Geb / Cucumber测试网站的工作流程相当复杂。

我有一组由页面类Prod1Page,Prod2Page和Prod3Page表示的产品页面。它们共享某些特征,可以通过相同的代码进行测试。

我想按照以下方式编写ProductPage页面类:

class ProductPage extends Page {
    ...
    static at = {...}
    ...
}

这样

Given(~/.../) {
    ...
    at ProductPage
    ...
}
如果满足以下任何条件,

将通过:

at Prod1Page
at Prod2Page
at Prod3Page

如果不清楚我的目标是避免在其他地方重复Prod [1-3] Page类的详细信息。

感谢您的任何见解,

尼克

1 个答案:

答案 0 :(得分:0)

在检查器的ProductPage中,只断言所有Prod#Page之间的公共HTML元素都可用。例如,如果所有ProdPages都有<div id="productContainer">元素,那么您可以在ProductPage类中添加以下内容:

class ProductPage extends Page{

static at = { $("#productContainer").displayed }

...
}

现在,在您的测试中,您可以调用at ProductPage,如果WebDriver的DOM上当前可用该公共元素,它将断言为true;并且你会知道你在其中一个ProdPages上。