这是我的java代码。
package com.ej.zob.modules;
import java.awt.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Select;
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.xpath("//div[.=\""+CountryName+"\"]/following-sibling::*")).findElement(By.xpath("//input[@maxlength='4']")).sendKeys(value);
LaunchApplication.driver.findElement(By.xpath("//input[@id=new_Afghanistan_AFN]")).sendKeys(value);
LaunchApplication.driver.findElement(By.name("save")).click();
这是我的HTML代码
<input id="Afghanistan_AFN" type="text" value="30" disabled="disabled">
</div>
<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>
</div>
</div>
<br>
<input id="Albania_ALL" type="text" value="12" disabled="disabled">
</div>
<div style="display: table-cell;width:270px" name="cell">
<input id="new_Albania_ALL" type="text" maxlength="4">
<input type="button" value="SET" onclick="setExchangeRate('Albania','ALL')" name="save">
<div id="msg_Albania_ALL"></div>
</div>
我想在上面的文本框中插入值但是如果我选择了findElement(By.id),那么它将只选择特定的文本框来插入值。但是我想根据国家名称插入值。我们假设如果用户通过阿富汗,那么只应选择具有id阿富汗的文本框。 如果我选择阿尔巴尼亚,那么只应选择具有id阿尔巴尼亚的文本框。我已经在html代码中提到了文本框。
答案 0 :(得分:0)
只需像这样替换硬编码值
String countryName="CheckWhatUserHasSent"; --> User Selected Value
By.xpath(String.format("//input[@id=%s]",countryName));
/\
||
||
This will be replaced by whatever country Name User has passed .
<强>更新强>
您收到错误,因为ID为阿尔巴尼亚的输入框不存在。
您可以维护Map<Key,Value>
key
为country name
,value
为html格式的实际ID。
Map<String,String> map=HashMap<>();
map.put("Albania","actualIDInHTMLFORM");
获取国家/地区名称后,请尝试
countryName=map.get("Albania"); --> Now countryName correspond to your actual ID