您的位置:首頁技術文章
文章詳情頁

Selenium python時間控件輸入問題解決方案

瀏覽:22日期:2022-07-16 15:27:09

對于時間的選擇問題,查到的大部分為兩種情況:

1.存在readonly屬性的

Selenium python時間控件輸入問題解決方案

2.沒有readonly屬性的

可直接賦值send_keys()

測試用例中剛好是沒有readonly屬性的

Selenium python時間控件輸入問題解決方案

且定位不到彈窗(通過查資料可知道,直接給時間控件input屬性賦值是最快捷的方法)

一開始都是奔著情況二去處理的,但一直運行不成功,總是在賦值的地方出錯,反復確認了不存在iFrame,句柄也都是一樣的,時間控件為input屬性,且是可編輯屬性,但就是總報錯。

判斷是否可編輯的指令為:

flag=timeInput.is_enabled()print('時間控件是否可編輯: '+str(flag))

運行結果如下:

Selenium python時間控件輸入問題解決方案

后來嘗試用情況一的方法進行處理,但因為查到的資料里,賦值語句有點問題(可能不適合自己的用例),由于一直沒考慮到查到的語句本身有問題,導致最后還是卡死在賦值上面。還好在別的地方看到正確的賦值語句,修改了賦值語句后就正常了

具體分解步驟如下:

步驟一:修改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,設置為false#js='$(input[id=dateRange_w3]).attr(’readonly’,’’)'

步驟二:執行

driver.execute_script(js)

步驟三:清空時間輸入框: clear()

步驟四:賦值

jsValue= ’document.getElementById('dateRange_w3').value='2018-11-12 至 2018-11-13'’[/code][code]driver.execute_script(jsValue)

完整流程如下(已測試通過的,為了方便調用,部分有做了封裝):

Selenium python時間控件輸入問題解決方案

Selenium python時間控件輸入問題解決方案

運行結果可看出,時間可正常輸入

Selenium python時間控件輸入問題解決方案

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
国产综合久久一区二区三区