1

我有一个问题,我有一个 CSS 选择器,它返回一个输入对象列表(所有文本输入),我想轻松地为它们设置值。

我希望能够做这样的事情:(假设 addressTextFields 是只有 html 文本输入的集合)

// 目前这会将每个字段分配为字符串 "["New","Belgium",".........

addressTextFields = ["New", "Belgium", "500 Linden Street", "Suite 200", "Fort Collins", "98026", "970-111-2222"] 或者

// 无法编译,因为 ArrayList 和 WebElement 之间的转换是不可能的...不过,我喜欢这种语法 :-)

addressTextFields << ["New", "Belgium", "500 Linden Street", "Suite 200", "Fort Collins", "98026", "970-111-2222"].each { it -> it }

关于如何为文本字段赋值的任何想法?

4

1 回答 1

3

通过在输入字段列表上使用 = 和 << 运算符而不是单个输入字段,您尝试将 addressTextFields 列表设置为 ["New", "Belgium", ...] 或添加 [" New", "Belgium", ... ] 到 addressTextFields 列表。

您真正想要做的是将每个元素作为值分配给文本字段:

def values = ["New", "belgium", … ]
addressTextFields.eachWithIndex { input, i -> input = values[i] }

如果您使用模块或页面,您可以轻松地在模块或页面级别上创建一个方法,该方法将字符串列表作为输入并将每个值分配给相应的文本输入字段。

// Module or page method
def setTextFieldValues(List values) {
   addressTextFields.eachWithIndex { input, i -> input = values[i] }
}

// From within test
setTextFieldValues(["New", "Belgium", … ])
于 2013-01-11T09:16:13.543 回答