Selenium python時(shí)間控件輸入問(wèn)題解決方案
對(duì)于時(shí)間的選擇問(wèn)題,查到的大部分為兩種情況:
1.存在readonly屬性的
2.沒(méi)有readonly屬性的
可直接賦值send_keys()
測(cè)試用例中剛好是沒(méi)有readonly屬性的
且定位不到彈窗(通過(guò)查資料可知道,直接給時(shí)間控件input屬性賦值是最快捷的方法)
一開(kāi)始都是奔著情況二去處理的,但一直運(yùn)行不成功,總是在賦值的地方出錯(cuò),反復(fù)確認(rèn)了不存在iFrame,句柄也都是一樣的,時(shí)間控件為input屬性,且是可編輯屬性,但就是總報(bào)錯(cuò)。
判斷是否可編輯的指令為:
flag=timeInput.is_enabled()print('時(shí)間控件是否可編輯: '+str(flag))
運(yùn)行結(jié)果如下:
后來(lái)嘗試用情況一的方法進(jìn)行處理,但因?yàn)椴榈降馁Y料里,賦值語(yǔ)句有點(diǎn)問(wèn)題(可能不適合自己的用例),由于一直沒(méi)考慮到查到的語(yǔ)句本身有問(wèn)題,導(dǎo)致最后還是卡死在賦值上面。還好在別的地方看到正確的賦值語(yǔ)句,修改了賦值語(yǔ)句后就正常了
具體分解步驟如下:
步驟一:修改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)
完整流程如下(已測(cè)試通過(guò)的,為了方便調(diào)用,部分有做了封裝):
運(yùn)行結(jié)果可看出,時(shí)間可正常輸入
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. jsp實(shí)現(xiàn)簡(jiǎn)單用戶(hù)7天內(nèi)免登錄2. 三個(gè)不常見(jiàn)的 HTML5 實(shí)用新特性簡(jiǎn)介3. asp批量添加修改刪除操作示例代碼4. jsp+servlet實(shí)現(xiàn)猜數(shù)字游戲5. 刪除docker里建立容器的操作方法6. msxml3.dll 錯(cuò)誤 800c0019 系統(tǒng)錯(cuò)誤:-2146697191解決方法7. CSS3實(shí)現(xiàn)動(dòng)態(tài)翻牌效果 仿百度貼吧3D翻牌一次動(dòng)畫(huà)特效8. 概述IE和SQL2k開(kāi)發(fā)一個(gè)XML聊天程序9. 推薦一個(gè)好看Table表格的css樣式代碼詳解10. asp在iis7報(bào)錯(cuò)行號(hào)不準(zhǔn)問(wèn)題的解決方法
