我們發(fā)現(xiàn)使用WebDriver的過(guò)程中,TESTCASE在執(zhí)行時(shí),并非只有GET(Url)的時(shí)候會(huì)發(fā)生測(cè)試CASE卡主的問(wèn)題,以下是對(duì)會(huì)發(fā)生此情況的函數(shù)的補(bǔ)充
driver.findelement(String locator) //查找頁(yè)面元素
driver.refush(); //刷新頁(yè)面
driver.getpagesource(); //獲取頁(yè)面html文本輸出
element.click();//點(diǎn)擊頁(yè)面元素
見(jiàn)過(guò)檢查發(fā)現(xiàn)上述函數(shù)在加載頁(yè)面或查找頁(yè)面元素的時(shí)候,若發(fā)生由于網(wǎng)絡(luò)原因或者頁(yè)面模塊加載出現(xiàn)問(wèn)題時(shí),頁(yè)面都會(huì)在這個(gè)過(guò)程中卡住,直接的后果是這個(gè)CASE持續(xù)執(zhí)行幾小時(shí)沒(méi)結(jié)果。在 穩(wěn)定性1文中我們已經(jīng)介紹過(guò)處理的方法,在這里只針對(duì)某一個(gè)函數(shù)去放出部分代碼,
具體思路為
以driver.refush();為例
線程實(shí)現(xiàn)的代碼
核心調(diào)用的刷新頁(yè)面的函數(shù)
refreshThread();實(shí)現(xiàn)
調(diào)用流程
主CASE執(zhí)行刷新函數(shù)?刷新函數(shù)調(diào)用子線程?子線程執(zhí)行刷新?執(zhí)行完畢告訴主線程O(píng)K。
若主線程判斷子線程超時(shí)既頁(yè)面卡主的情況,則主線程會(huì)關(guān)閉子線程執(zhí)行相應(yīng)的FAIL操作。
歡迎交流~