这是我的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) 然后代码会更长。
答案 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列表,然后在循环中获取元素。
这对您有帮助,如果没有,请随时发表评论