自動化對日期控件的處理

和富文本一致,日期控件也是我們經常可常見的控件之一,而且大多數的日期控件都是readonly屬性,需要人爲的手動去選擇對應的時間,很顯然,在手工測試中,這是一個很簡單,很容易做到的操作,在自動化中,對日期的控件,比手工測試的操作雖然一直,但是比較繁瑣。對日期的控件,我們任然使用js來控制,然後通過控制js來實現我們的目的。

如下截圖是一個日期控件,我們實現的目的就是在活動時間中,寫入開始時間和結束時間,見效果圖:

借用firebug的調試工具,查看該開始時間和結束時間的html代碼,開始時間代碼爲:

<inputtype="text" style="cursor:pointer;"readonly="readonly" title="開始時間≥當前時間"placeholder="開始時間≥當前時間" value=""class="text-box hasDatepicker" name="act_start_time"id="dp1439183415476">

結束時間代碼爲:

<input type="text"style="cursor:pointer;" readonly="readonly" title="結束時間&gt;開始時間"placeholder="結束時間&gt;開始時間" value="" class="text-box hasDatepicker"name="act_stop_time" id="dp1439183415477">

對日期控件的處理思路一般爲:

1、取消日期控件的readonly屬性

2、給value賦值

3、寫js代碼來實現如上的1,2點,再webdriver對js進行處理

利用如上的三點思路,時間的js代碼爲:

startJs=js1="$(\"input[placeholder='開始時間≥當前時間']\").removeAttr('readonly');$(\"input[placeholder='開始時間≥當前時間']\").attr('value','2014-08-10 12:00:00')"

stopTime="$(\"input[placeholder='結束時間>開始時間']\").removeAttr('readonly');$(\"input[placeholder='結束時間>開始時間']\").attr('value','2014-08-1013:16:00')"

輸入開始時間以及結束時間,實現的測試代碼爲:

#coding:utf-8

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.common.action_chains import ActionChains

from selenium.common.exceptions importNoSuchElementException, UnexpectedTagNameException

from selenium.webdriver.support.ui import Select

from selenium.webdriver.common.alert import Alert

from time import sleep

driver=webdriver.Firefox()

driver.maximize_window()

driver.implicitly_wait(30)

driver.get('file:///C:/Users/liwangping/Desktop/Time/index.html')

startTime="$(\"input[placeholder='開始時間≥當前時間']\").removeAttr('readonly');$(\"input[placeholder='開始時間≥當前時間']\").attr('value','2014-08-10 12:00:00')"

stopTime="$(\"input[placeholder='結束時間>開始時間']\").removeAttr('readonly');$(\"input[placeholder='結束時間>開始時間']\").attr('value','2014-08-1013:16:00')"

driver.execute_script(startTime)

driver.execute_script(stopTime)

sleep(5)

driver.quit()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章