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

时间:2015-05-15 07:18:02

标签: java 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前面。我想在所有100个文本框中插入值 顺序和类似地点击按钮。但从上面的代码我能够在单个文本框中插入值,同样单击单个按钮。    所以我的问题是如何在所有文本框中插入值并单击多个按钮。每个文本框具有不同的ID但是如果我使用findelement(By.id)  然后代码会更长。

1 个答案:

答案 0 :(得分:3)

如果所有按钮和文本框都被同一个div包围,您可以搜索以下内容:

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

请注意,findElements返回符合条件的所有元素。

然后你可以像这样循环结果:

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

这将首先选择文本字段,然后选择每个div的按钮和名称单元格。也许你需要检查是否有其他div被调用&#34; cell&#34;没有这些元素。

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

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

这对您有帮助,如果没有,请随时发表评论