一、执行环境:Java + selenium + chrome
二、问题描述:
使用XPath定位到元素后,使用sendKeys()输入内容,在输入框显示出来的内容不完整,也就是与所输入内容不一致。比如sendKeys()输入的是18611372039,输入后,只显示部分数字,18611。
再比如,输入的内容为:"good",显示为:god;
输入的内容为:goood,显示为:good;
输入的内容为:hello,显示为:helo。
三、解决过程:
网上各种方法,总结一下,大致为:
(1)((JavascriptExecutor)driver).executeScript("document.getElementById(\"kw\").value=\"yeetrack\"");这种方法可以用,但是JavascriptExecutor没有xpath定位方法,所以不能使用到利用xpath定位的场景。
(2)其他的方法。
(3)笨,但不可置否的方法:一个一个地写入。(看到原作者虽然提到了这一点,但是没有写出过程,但愿他没有写了一大段的一模一样的定位。。。你懂得。。。)
四、上代码:(利用for循环写入)
// 写入方法
public static void ForSendKeys(WebElement element,String content){
for (int i = 0; i < content.length(); i++) {
element.sendKeys(content.charAt(i)+"");
}
}
// 调用方式
WebElement element = "";//获取元素
String content = "";//获取输入的内容
ForSendKeys(element,content);//调用
THE END