如何在selenium / Java中迭代并输入多个List <webelement>的值

时间:2016-08-17 20:53:05

标签: selenium

我在页面中有以下WebElement列表

@FindBy(xpath="a")
private List<WebElement> generalList ;
@FindBy(xpath="b")
private List<WebElement> eventList ;
@FindBy(xpath="c")
private List<WebElement> additionalList ;

我想迭代上面的每个列表项并通过循环输入值

实施例

通才

姓氏:姓氏(输入字段)

名字:名字(输入字段)

AdditionalList

地址:地址(输入字段)

Zip :11423(输入字段)

我试过以下

generalList.stream().forEach(elem -> elem.sendkeys("last name"," First Name"));

在每个输入字段中输入lastnameFirstname。

姓氏:lastnameFirstname

名字:lastnameFirstname

2 个答案:

答案 0 :(得分:1)

您的代码已经迭代了列表并在每个元素中输入数据。

老实说,这不是一个很好的方法。我猜你可能认为这更有效率或其他什么,但它只是让它更混乱。只需.sendKeys()到姓氏,然后是名字,依此类推。这样做可以让你更清楚自己想要做什么。

答案 1 :(得分:0)

实际上,您正在循环浏览WebElement并在sendKeys()期间提供相同的值,这就是为什么您获得绝对正确的相同输出的原因。您需要循环遍历要在输入字段上设置的值,如下所示: -

String[] names = {"Last Name", "First Name"};
IntStream.range(0, names.length).forEach(idx -> generalList.get(idx).sendKeys(names[idx]));