如何根据特定参数在 selenium webdriver 的文本框中插入值
Posted
技术标签:
【中文标题】如何根据特定参数在 selenium webdriver 的文本框中插入值【英文标题】:how to insert value in text box in selenium webdriver according to perticular parameter 【发布时间】:2015-05-19 09:34:24 【问题描述】:这是我的 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) 那么它只会选择特定的文本框来插入值。但是我想根据国家名称插入值.let我们假设如果用户通过 afghanistan 则只应选择具有 id afghanistan 的文本框。 如果我选择 Albania,则只应选择具有 id albania 的文本框。我已经在html代码中提到了文本框。
【问题讨论】:
你到底在哪里遇到问题?? 问题是如果我给 findelement(By.xpath"//input[@id=new_Afghanistan_AFN]") 那么它只选择阿富汗。所以我想给一个国家名称说阿尔巴尼亚,那么应该只选择阿尔巴尼亚文本框。希望你能理解。 仍然看不到问题?只找阿尔巴尼亚的元素? 【参考方案1】:只需像这样替换硬编码值
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 为 Albania 的输入框不存在。
您可以维护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
【讨论】:
我收到错误“无法找到元素:“method”:“xpath”,“selector”:“//input[@id=Albania]”以上是关于如何根据特定参数在 selenium webdriver 的文本框中插入值的主要内容,如果未能解决你的问题,请参考以下文章
python3+selenium3遇到的问题:Exception ignored in: <bound method Service.__del__ of <selenium.webdri