如何在 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 列表,然后循环获取元素。
对你有帮助吗,如果没有请随时评论
这是我的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 列表,然后循环获取元素。
对你有帮助吗,如果没有请随时评论