Selenium python時間控件輸入問題解決方案
對于時間的選擇問題,查到的大部分為兩種情況:
1.存在readonly屬性的
2.沒有readonly屬性的
可直接賦值send_keys()
測試用例中剛好是沒有readonly屬性的
且定位不到彈窗(通過查資料可知道,直接給時間控件input屬性賦值是最快捷的方法)
一開始都是奔著情況二去處理的,但一直運行不成功,總是在賦值的地方出錯,反復確認了不存在iFrame,句柄也都是一樣的,時間控件為input屬性,且是可編輯屬性,但就是總報錯。
判斷是否可編輯的指令為:
flag=timeInput.is_enabled()print('時間控件是否可編輯: '+str(flag))
運行結果如下:
后來嘗試用情況一的方法進行處理,但因為查到的資料里,賦值語句有點問題(可能不適合自己的用例),由于一直沒考慮到查到的語句本身有問題,導致最后還是卡死在賦值上面。還好在別的地方看到正確的賦值語句,修改了賦值語句后就正常了
具體分解步驟如下:
步驟一:修改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)
完整流程如下(已測試通過的,為了方便調用,部分有做了封裝):
運行結果可看出,時間可正常輸入
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
1. react axios 跨域訪問一個或多個域名問題2. JSP實現文件上傳功能3. python基于socket模擬實現ssh遠程執行命令4. css進階學習 選擇符5. Nodejs 連接 mysql時報Error: Cannot enqueue Query after fatal error錯誤的處理辦法6. 解決python腳本中error: unrecognized arguments: True錯誤7. ASP基礎入門第三篇(ASP腳本基礎)8. ASP基礎知識Command對象講解9. 基于python計算滾動方差(標準差)talib和pd.rolling函數差異詳解10. Ajax對xml信息的接收和處理操作實例分析
