Groovy 在Geb中动态设置页面url
在这个场景中,我想从主页导航到子页并执行一些操作。子页面的url是动态生成的,但页面内容是相同的。这就是我迄今为止所尝试的: 在主要类别中:Groovy 在Geb中动态设置页面url,groovy,automation,geb,Groovy,Automation,Geb,在这个场景中,我想从主页导航到子页并执行一些操作。子页面的url是动态生成的,但页面内容是相同的。这就是我迄今为止所尝试的: 在主要类别中: to MainPage SubPageButton.click() to SubPage SelectAddressButton.click() 在Page类中: public class SubPage extends Page { static url = getCurrentUrl() static cont
to MainPage
SubPageButton.click()
to SubPage
SelectAddressButton.click()
在Page类中:
public class SubPage extends Page {
static url = getCurrentUrl()
static content = {
SelectAddressButton { $("button", 0) }
}
}
我也尝试过(没有成功)
提前多谢 它将不起作用,因为加载类时会初始化静态字段 但是,您可以使用
go“http://my_dynamic_url_string“
在您的规范中,然后进行断言。在这里,at
断言也会起作用
此外,如果你的“动态”url可以参数化,你应该看看
定义一个没有url
静态字段的页面
。我经常用它。目前,我使用的是Geb'0.10.0',并通过withNewWindow{link.click(CustomPage)}
使用它,它在处为我进行静态验证。或者,您可以将逻辑放入方法中,并在传递给withNewWindow
的闭包中调用它们
例如(未经测试):
重写Page
类中的方法getPageUrl
浏览源代码规范,第页。注意如何调用getPageUrl。谢谢!在哪里可以定义子页面的静态内容?我曾尝试在主页中定义,但它不起作用。定义没有url的页面也不起作用,尽管示例中使用了该方法。@dshgna更新了答案。我认为您使用不带url的页面是失败的,因为您试图使用导航到。当您执行操作时,单击可以提供预期的页面。见下面的例子。谢谢。这就是我错的地方。与使用“to”不同,您在回答中提到的at检查是有效的。
class CustomPage {
static content = {
SelectAddressButton { $("button", 0) }
}
static at = { "check smth" }
def orSomehowLikeThis() {
assert "smth"
SelectAddressButton.click() // accessing content
}
}
withNewWindow { link.click(CustomPage) } {
orSomehowLikeThis()
}