Java+Selenium自動化對非輸入框的日曆或日期控件的處理

如圖:前端

 

        

一、問題描述:node

      在應用selenium實現web自動化時,常常會遇處處理日期控件點擊問題,手工很簡單,能夠一個個點擊日期控件選擇須要的日期,但自動化執行過程當中,徹底複製手工這樣的操做就有點難了。web

二、想法:ui

        其實很簡單,把它當作輸入框來看就行了,使用selenium的sendKeys對輸入框輸入日期則可。spa

        driver.findElement(By.id("createTime")).sendKeys("2016-08-24");//輸入日期orm

三、想法是很美好的,可是有時候實行起來卻不執行,這個時候咱們就要仔細去看看前端的代碼了,代碼以下:blog

     <div class="col-lg-3 form-input">ip

              <input id="createTime" class="form-control" type="text" readonly="" name="tatsudoDate" onclick="WdatePicker()" aria-required="true">
     </div>

4這個時候咱們能夠移除readonly的屬性,問題就輕輕鬆鬆解決了,代碼以下:rem

  String js = "document.getElementById('createTime').removeAttribute('readonly')";     // 原生js,移除屬性

    ((JavascriptExecutor)driver).executeScript(js);    //將driver強制轉換爲JavascriptExecutor類型

  driver.findElement(By.id("createTime")).sendKeys("2016-08-24");    //輸入日期

get

五、代碼裏面必定要記得導入這個方法:

import org.openqa.selenium.JavascriptExecutor;

相關文章
相關標籤/搜索