如何在 selenium webdriver 中的多个文本框中插入值

how to insert value in multiple text box in selenium webdriver

这是我的java代码

package com.ej.zob.modules;

import org.openqa.selenium.By;

public class SetExchange {
public void Execute(String CountryName, String value)
{
    LaunchApplication.driver.findElement(By.linkText("SET")).click();
    LaunchApplication.driver.findElement(By.linkText("EXCHANGE RATE")).click();
       //LaunchApplication.driver.findElement(By.id("new_Afghanistan_AFN")).sendKeys(value);
    LaunchApplication.driver.findElement(By.xpath("//input[@maxlength='4']")).sendKeys(value);
    LaunchApplication.driver.findElement(By.xpath("//input[@value='SET']")).click();

}

}

这是我的html

<div style="display: table-cell;width:270px" name="cell">
<input id="new_Afghanistan_AFN" type="text" maxlength="4">
<input type="button" value="SET"   onclick="setExchangeRate('Afghanistan','AFN')" name="save">
<div id="msg_Afghanistan_AFN"></div>
</div>

我的网页中有超过 100 个文本框和相同数量的按钮 textbox.I 前面的所有 100 个文本框要插入值 按顺序并类似地单击上面代码中的 button.But 我能够将值插入单个文本框并类似地单击单个按钮。 所以我的问题是如何将值插入所有文本框并单击多个 button.Each 文本框具有不同的 id 但如果我使用 findelement(By.id) 那么代码会太长。

如果所有按钮和文本框都被相同的 div 包围,您可以像这样搜索:

List<WebElement> divs = LaunchApplication.driver.findElements(By.name("cell")); 

注意 findElements returns 所有符合条件的元素。

然后你可以像这样遍历结果:

for(WebElement elem: divs){
    elem.findElement(By.cssSelector("[type=text]")).sendKeys("YOUR KEYS TO SEND");
    elem.findElement(By.cssSelector("[type=button]")).click();
}

这将 select 首先是文本字段,然后是每个 div 带有名称单元格的按钮。也许您需要检查其他 div 是否被称为 "cell",它们不包含这些元素。

如果您不知道CssSelectors,这些将匹配属性文本。有关详细信息,请查看此处 http://www.w3schools.com/cssref/css_selectors.asp

另一种方法是读入/或创建 ID 列表,然后循环获取元素。

对你有帮助吗,如果没有请随时评论