之前曾經(jīng)說(shuō)過(guò)碰到回放腳本時(shí)出現(xiàn)timeout的問(wèn)題,下面是總結(jié)了一下網(wǎng)上的解決方案,請(qǐng)參考:
往往我們?cè)阡浿频膕elenium腳本回放時(shí)會(huì)遇到timeout錯(cuò)誤,這種問(wèn)題往往是由于response返回時(shí)間較長(zhǎng)超過(guò)了selenium的等待時(shí)間。如果我們認(rèn)為只要等待足夠的時(shí)間,系統(tǒng)總是能訪問(wèn)一個(gè)結(jié)果的,在這樣的前提下考慮網(wǎng)絡(luò)原因或被測(cè)系統(tǒng)的性能問(wèn)題或者第一次訪問(wèn)其實(shí)是正常的cache過(guò)程稍微慢一點(diǎn)可以理解, 那么這種情況會(huì)干擾正常的功能測(cè)試。
常用的解決方案有:
1. 在option窗口增加timeout時(shí)間
2. 調(diào)節(jié)錄制回放速度Fast -> Slow
3. 使用執(zhí)行等候API
waitForPageToLoad
用click的地方改成 clickAndWait
waitForPopUp
當(dāng)以上的方案不太奏效時(shí),可以考慮下面的方案
1. 加入waitForElementPresent或waitForText, Selenium IDE 默認(rèn)設(shè)置的等待時(shí)間為 30 秒,超過(guò) 30 秒目標(biāo)對(duì)象仍然沒有找到會(huì)報(bào)錯(cuò)。加上“waitForElementPresent”之后,腳本會(huì)再等待額外的 30 秒
2. 在某些耗時(shí)command執(zhí)行之后或其他需要確保頁(yè)面load完成做某個(gè)驗(yàn)證之前的地方再加一個(gè)
pause(waitTime)
Arguments:
waitTime - the amount of time to sleep (in milliseconds)
Wait for the specified amount of time (in milliseconds)
調(diào)試錄制的腳本,根據(jù)需要選擇加入pause的位置
3. 同一個(gè)test case執(zhí)行兩次,第一個(gè)test case的測(cè)試結(jié)果可以丟棄,只看第二次測(cè)試結(jié)果。這種適用于web系統(tǒng)第一次訪問(wèn)其實(shí)是建立緩存的過(guò)程。