我是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类的详细信息。
感谢您的任何见解,
尼克
答案 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上。