我有一个问题,我有一个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 }
有关如何为文本字段指定值的任何想法?
答案 0 :(得分:3)
使用=和&lt;&lt;输入字段列表上的运算符,而不是单个输入字段 您正尝试将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", … ])