Selenium python時(shí)間控件輸入問題解決方案
對于時(shí)間的選擇問題,查到的大部分為兩種情況:
1.存在readonly屬性的

2.沒有readonly屬性的
可直接賦值send_keys()
測試用例中剛好是沒有readonly屬性的

且定位不到彈窗(通過查資料可知道,直接給時(shí)間控件input屬性賦值是最快捷的方法)
一開始都是奔著情況二去處理的,但一直運(yùn)行不成功,總是在賦值的地方出錯(cuò),反復(fù)確認(rèn)了不存在iFrame,句柄也都是一樣的,時(shí)間控件為input屬性,且是可編輯屬性,但就是總報(bào)錯(cuò)。
判斷是否可編輯的指令為:
flag=timeInput.is_enabled()print('時(shí)間控件是否可編輯: '+str(flag))
運(yùn)行結(jié)果如下:

后來嘗試用情況一的方法進(jìn)行處理,但因?yàn)椴榈降馁Y料里,賦值語句有點(diǎn)問題(可能不適合自己的用例),由于一直沒考慮到查到的語句本身有問題,導(dǎo)致最后還是卡死在賦值上面。還好在別的地方看到正確的賦值語句,修改了賦值語句后就正常了
具體分解步驟如下:
步驟一:修改readonly屬性
#下面四種方法,任選一種即可
js = 'document.getElementById(’dateRange_w3’).removeAttribute(’readonly’)' # 1.原生js,移除屬性#js = '$(’input[id=dateRange_w3]’).removeAttr(’readonly’)' # 2.jQuery,移除屬性#js = '$(’input[id=dateRange_w3]’).attr(’readonly’,false)' # 3.jQuery,設(shè)置為false#js='$(input[id=dateRange_w3]).attr(’readonly’,’’)'
步驟二:執(zhí)行
driver.execute_script(js)
步驟三:清空時(shí)間輸入框: clear()
步驟四:賦值
jsValue= ’document.getElementById('dateRange_w3').value='2018-11-12 至 2018-11-13'’[/code][code]driver.execute_script(jsValue)
完整流程如下(已測試通過的,為了方便調(diào)用,部分有做了封裝):


運(yùn)行結(jié)果可看出,時(shí)間可正常輸入

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python中文本字符處理的簡單方法記錄2. Python基于requests庫爬取網(wǎng)站信息3. Python-openpyxl表格讀取寫入的案例詳解4. PHP laravel實(shí)現(xiàn)導(dǎo)出PDF功能5. ASP基礎(chǔ)知識(shí)Command對象講解6. 使用Blazor框架實(shí)現(xiàn)在前端瀏覽器中導(dǎo)入和導(dǎo)出Excel7. JavaScript實(shí)現(xiàn)留言板實(shí)戰(zhàn)案例8. 資深程序員:給Python軟件開發(fā)測試的25個(gè)忠告!9. vscode運(yùn)行php報(bào)錯(cuò)php?not?found解決辦法10. 如何從Python的cmd中獲得.py文件參數(shù)

網(wǎng)公網(wǎng)安備