【发布时间】:2014-04-17 19:39:30
【问题描述】:
我有一个日期字段,有时会被 Webdriver element.sendKeys() 填写,而其他时候该字段会被跳过。 (使用 Chromedriver 2.9)。
元素定位器信息:
<input id="dateOfBirth" type="date" class=" form-control " placeholder="">
输入文字失败重试代码:
//Web element already verified present and visible before being passed into the method
public static void enterText(WebElement weElement, String textToEnter) {
System.out.println(" *Thread:" +Thread.currentThread().getId() +" INFO: EnteringText: " +textToEnter);
//weElement.click();
weElement.sendKeys(textToEnter);
String textEntered = weElement.getAttribute("value");
System.out.println(" *Thread:" +Thread.currentThread().getId() +" INFO: TextDisplayed is: "+ textEntered);
//continued
int iAttempts = 0;
while (iAttempts < 1) {
if(!textEntered.isEmpty())
break;
else{
System.out.println(" *Thread:" +Thread.currentThread().getId() +" ERROR: re-Attempting to enter text: "+ textToEnter);
//weElement.click();
weElement.sendKeys(textToEnter);
textEntered= weElement.getAttribute("value");
System.out.println(" *Thread:" +Thread.currentThread().getId() +" INFO: Element text after re-attempt: "+ textEntered);
iAttempts++;
}
}
}
控制台输出:
*Thread:10 Trying: com.xxx.pageobjects.IdentityPage.typeDOB
*Thread:10 INFO: Locator is: [data-model-attribute='dateOfBirth'] input
*Thread:10 INFO: EnteringText: 01/01/1981
*Thread:10 INFO: TextDisplayed is:
*Thread:10 ERROR: re-Attempting to enter text: 01/01/1981
*Thread:10 INFO: Element text after re-attempt:
有没有人知道为什么这只发生在日期字段上?如果它失败了,有什么更好的解决方法的想法吗? 谢谢!
注意:我的应用仅适用于 Chrome,因此我无法确认问题是否发生在其他浏览器中
【问题讨论】:
标签: selenium selenium-webdriver webdriver selenium-chromedriver