我正在编写一个Java WebDriver代码,用于从way2sms.com发送短信,但我没有在框中插入移动设备。
下面是我试图在文本框中插入任何no的页面的一小部分,我已经尝试className(), cssSelector(), id(), name();
但没有任何工作。实际上,每次运行我的WebDriver程序时,问题都是id="tQTSajQW"
和name="tQTSajQW"
。
<p id="p1">
<input id="textfield2" class="inp" type="text" style="width:30px; color:#333; background: #e0e0e0;" name="textfield2" value="+91" readonly="readonly">
<input id="tQTSajQW" class="inp" type="text" value="" onchange="javascript:dispLocMob(this);" onkeydown="javascript:dispLocMob(this);" onkeyup="javascript:dispLocMob(this);" maxlength="10" onblur="if(this.value==""){ this.placeholder="Mobile Number";this.style.color="#293f46;"}" placeholder="Mobile Number" name="tQTSajQW" style="">
<img id="locMob" alt="Find Mobile Location" src="http://sc1.way2sms.com/w2sv5/images/locate-mobile.gif" style="cursor: pointer; visibility: hidden; position: absolute; top: 86px; left: 240px;" onclick="javascript:locateMob();">
</p>
除了上述方法之外,我们有什么方法可以做到这一点?
答案 0 :(得分:0)
将CSS选择器或xPath表达式绑定到有问题的元素周围的其他元素。
例如:
driver.findElement(By.xpath("//p[@id='p1']/input[2]"));
如果页面有更多更改,那么只需获取<p>
的子项并将其循环:
WebElement paragraph = driver.findElement(By.id("p1"));
List<WebElement> inputs = paragraph.findElements(By.tagName("input"));
for (WebElement input : inputs) {
if ("Mobile Number".equals(input.getAttribute("placeholder"))) {
// do your tricks
}
}