如何检查您是否已登陆 Geb 中的多个页面之一
How to check you have landed on one of several pages in Geb
我是 Groovy 的新手,正在使用 Geb/Cucumber.
测试具有相当复杂工作流程的网站
我有一组产品页面,由页面 classes Prod1Page、Prod2Page 和 Prod3Page 表示。它们具有某些可以通过相同代码测试的特征。
我想按照以下行编写 ProductPage 页面 class:
class ProductPage extends Page {
...
static at = {...}
...
}
这样
Given(~/.../) {
...
at ProductPage
...
}
如果满足以下任一条件,则通过:
at Prod1Page
at Prod2Page
at Prod3Page
如果不清楚,我的目标是避免在其他地方重复 Prod[1-3]Page classes 的详细信息。
感谢您的任何见解,
尼克
在 ProductPage
的检查器中,只需断言所有 Prod#Page
之间的公共 HTML 元素可用。例如,如果所有 ProdPages 都有一个 <div id="productContainer">
元素,那么您可以将以下内容放入 ProductPage
class:
class ProductPage extends Page{
static at = { $("#productContainer").displayed }
...
}
现在在您的测试中,您可以调用 at ProductPage
,如果该公共元素当前在 WebDriver 的 DOM 上可用,它将断言为真;你会知道你在 ProdPages 之一。
我是 Groovy 的新手,正在使用 Geb/Cucumber.
测试具有相当复杂工作流程的网站我有一组产品页面,由页面 classes Prod1Page、Prod2Page 和 Prod3Page 表示。它们具有某些可以通过相同代码测试的特征。
我想按照以下行编写 ProductPage 页面 class:
class ProductPage extends Page {
...
static at = {...}
...
}
这样
Given(~/.../) {
...
at ProductPage
...
}
如果满足以下任一条件,则通过:
at Prod1Page
at Prod2Page
at Prod3Page
如果不清楚,我的目标是避免在其他地方重复 Prod[1-3]Page classes 的详细信息。
感谢您的任何见解,
尼克
在 ProductPage
的检查器中,只需断言所有 Prod#Page
之间的公共 HTML 元素可用。例如,如果所有 ProdPages 都有一个 <div id="productContainer">
元素,那么您可以将以下内容放入 ProductPage
class:
class ProductPage extends Page{
static at = { $("#productContainer").displayed }
...
}
现在在您的测试中,您可以调用 at ProductPage
,如果该公共元素当前在 WebDriver 的 DOM 上可用,它将断言为真;你会知道你在 ProdPages 之一。