在 Geb 中动态设置页面 url
Setting page url dynamically in Geb
在这种情况下,我想从主页导航到子页面并执行一些操作。子页面的url是动态生成的,但是页面内容是一样的。这是我到目前为止尝试过的:
主要class:
to MainPage
SubPageButton.click()
to SubPage
SelectAddressButton.click()
页面中 class:
public class SubPage extends Page {
static url = getCurrentUrl()
static content = {
SelectAddressButton { $("button", 0) }
}
}
我也尝试过(没有成功)
- 定义子页面的静态内容(SelectAddressButton)
在主页的 Page 对象中。
- 定义没有 url
的子页面
提前致谢!
它不会工作,因为加载 class 时会初始化静态字段。
但是,您可以在您的规范中使用 go "http://my_dynamic_url_string"
,然后进行断言。 at
断言也适用于此。
此外,如果您的 "dynamic" url 可以参数化,您应该看看 Advanced Page Navigation。
定义没有 url
静态字段的 Page
应该可行。我已经用了很多。目前我使用 Geb '0.10.0' 并通过 withNewWindow { link.click(CustomPage) }
使用它,它为我进行静态 at
验证。或者您可以将逻辑放在方法中,并在传递给 withNewWindow
.
的闭包中调用它们
例如(未经测试):
class CustomPage {
static content = {
SelectAddressButton { $("button", 0) }
}
static at = { "check smth" }
def orSomehowLikeThis() {
assert "smth"
SelectAddressButton.click() // accessing content
}
}
withNewWindow { link.click(CustomPage) } {
orSomehowLikeThis()
}
重写 Page
class 中的方法 getPageUrl
。
查看源代码规范、页面。注意如何调用 getPageUrl。
在这种情况下,我想从主页导航到子页面并执行一些操作。子页面的url是动态生成的,但是页面内容是一样的。这是我到目前为止尝试过的:
主要class:
to MainPage
SubPageButton.click()
to SubPage
SelectAddressButton.click()
页面中 class:
public class SubPage extends Page {
static url = getCurrentUrl()
static content = {
SelectAddressButton { $("button", 0) }
}
}
我也尝试过(没有成功)
- 定义子页面的静态内容(SelectAddressButton) 在主页的 Page 对象中。
- 定义没有 url 的子页面
提前致谢!
它不会工作,因为加载 class 时会初始化静态字段。
但是,您可以在您的规范中使用 go "http://my_dynamic_url_string"
,然后进行断言。 at
断言也适用于此。
此外,如果您的 "dynamic" url 可以参数化,您应该看看 Advanced Page Navigation。
定义没有 url
静态字段的 Page
应该可行。我已经用了很多。目前我使用 Geb '0.10.0' 并通过 withNewWindow { link.click(CustomPage) }
使用它,它为我进行静态 at
验证。或者您可以将逻辑放在方法中,并在传递给 withNewWindow
.
例如(未经测试):
class CustomPage {
static content = {
SelectAddressButton { $("button", 0) }
}
static at = { "check smth" }
def orSomehowLikeThis() {
assert "smth"
SelectAddressButton.click() // accessing content
}
}
withNewWindow { link.click(CustomPage) } {
orSomehowLikeThis()
}
重写 Page
class 中的方法 getPageUrl
。
查看源代码规范、页面。注意如何调用 getPageUrl。