如圖:
1、問題描述:
在應用selenium實現web自動化時,經常會遇到處理日期控件點擊問題,手工很簡單,可以一個個點擊日期控件選擇需要的日期,但自動化執行過程中,完全復制手工這樣的操作就有點難了。
2、想法:
其實很簡單,把它當做輸入框來看就好了,使用selenium的sendKeys對輸入框輸入日期則可。
driver.findElement(By.id("createTime")).sendKeys("2016-08-24");//輸入日期
3、想法是很美好的,但是有時候實行起來卻不執行,這個時候我們就要仔細去看看前端的代碼了,代碼如下:
<div class="col-lg-3 form-input">
4、這個時候我們可以移除readonly的屬性,問題就輕輕松松解決了,代碼如下:
String js = "document.getElementById('createTime').removeAttribute('readonly')"; // 原生js,移除屬性
((JavascriptExecutor)driver).executeScript(js); //將driver強制轉換為JavascriptExecutor類型
driver.findElement(By.id("createTime")).sendKeys("2016-08-24"); //輸入日期
5、代碼里面一定要記得導入這個方法:
import org.openqa.selenium.JavascriptExecutor;