Selenium python時間控件輸入問題解決方案
對于時間的選擇問題,查到的大部分為兩種情況:
1.存在readonly屬性的
2.沒有readonly屬性的
可直接賦值send_keys()
測試用例中剛好是沒有readonly屬性的
且定位不到彈窗(通過查資料可知道,直接給時間控件input屬性賦值是最快捷的方法)
一開始都是奔著情況二去處理的,但一直運行不成功,總是在賦值的地方出錯,反復(fù)確認了不存在iFrame,句柄也都是一樣的,時間控件為input屬性,且是可編輯屬性,但就是總報錯。
判斷是否可編輯的指令為:
flag=timeInput.is_enabled()
print("時間控件是否可編輯: "+str(flag))
運行結(jié)果如下:
后來嘗試用情況一的方法進行處理,但因為查到的資料里,賦值語句有點問題(可能不適合自己的用例),由于一直沒考慮到查到的語句本身有問題,導(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)
步驟三:清空時間輸入框: clear()
步驟四:賦值
jsValue= 'document.getElementById("dateRange_w3").value="2018-11-12 至 2018-11-13"'[/code][code]driver.execute_script(jsValue)
完整流程如下(已測試通過的,為了方便調(diào)用,部分有做了封裝):
運行結(jié)果可看出,時間可正常輸入
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 基于selenium及python實現(xiàn)下拉選項定位select
- Selenium及python實現(xiàn)滾動操作多種方法
- python上selenium的彈框操作實現(xiàn)
- Python3爬蟲中Selenium的用法詳解
- element?$notify?懸浮通知使用詳解
- python3+selenium獲取頁面加載的所有靜態(tài)資源文件鏈接操作
- python+selenium+chrome批量文件下載并自動創(chuàng)建文件夾實例
- Python selenium 自動化腳本打包成一個exe文件(推薦)
- python selenium 執(zhí)行完畢關(guān)閉chromedriver進程示例
相關(guān)文章
python 利用已有Ner模型進行數(shù)據(jù)清洗合并代碼
今天小編就為大家分享一篇python 利用已有Ner模型進行數(shù)據(jù)清洗合并代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python常用模塊sys,os,time,random功能與用法實例分析
這篇文章主要介紹了Python常用模塊sys,os,time,random功能與用法,結(jié)合實例形式分析了Python模塊sys,os,time,random功能、原理、相關(guān)模塊函數(shù)、使用技巧與操作注意事項,需要的朋友可以參考下2020-01-01tensorflow 20:搭網(wǎng)絡(luò),導(dǎo)出模型,運行模型的實例
這篇文章主要介紹了tensorflow 20:搭網(wǎng)絡(luò),導(dǎo)出模型,運行模型的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python數(shù)據(jù)結(jié)構(gòu)與算法中的棧詳解(2)
這篇文章主要為大家詳細介紹了Python中的棧,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03