1. 程式人生 > >解決方案:Java+selenium定位元素後,sendKeys()輸入的內容顯示不完整

解決方案:Java+selenium定位元素後,sendKeys()輸入的內容顯示不完整

一、執行環境: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