gpt4 book ai didi

groovy - Geb:页面内容列表

转载 作者:行者123 更新时间:2023-12-02 00:14:31 25 4
gpt4 key购买 nike

我有一个 Page 类作为

class SignUpPage extends Page {
static url = "signup"
static at = { waitFor { title.startsWith("Join") } }
static content = {
firstNameField { $("input", name:"firstName") }
lastNameField { $("input", name:"lastName") }
emailField { $("input", name:"email") }
passwordField { $("input", name:"password") }
}
}

我想给这个类添加一个populateFields 方法。这将允许我调用此方法来填充我的测试用例中的文本字段。此方法传入了一个参数 - 一个 Map 允许我根据需要从我的测试用例中覆盖某些字段值。

问题 是我不知道如何遍历页面的“内容”。为了使这一点更清楚,请看下面的代码:

class SignUpPage extends Page {
static url = "signup"

// .. as defined above ..

def populateFields(customValues = [:]) {

// I want to iterate of the textFields here
// Something like...

textFields = this.metaclass.methods.findAll {
it.name.endsWith("Field")
}

textFields.each {
// populate with data
}
}
}

不起作用

如何获取闭包“content”的内容?

最佳答案

我认为有一种更简单的方法可以实现它,而且您不需要遍历页面对象的内容。鉴于 map 中的键是您要修改的输入的名称属性,您可以执行以下操作:

def populateFields(customValues = [:]) {
def form = $('form') //can be any element that is enclosing all of your inputs

customValues.each { key, value ->
form[key] = value
}
}

查看关于 form control shortcuts 的部分在手册中了解它是如何工作的。

关于groovy - Geb:页面内容列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13938201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com