1、出現Stale Element Reference Exception
官方解釋說這種異常有兩種可能:找元素后對元素進行操作時,元素已經被刪除或者元素不再附加到DOM。
一般都是由于JavaScript操作元素導致元素陳舊。
我的項目中需要判斷某個元素是否可見,是否hidden,如果不是hidden需要等待,但是由于頁面刷新,會導致經常出現此異常。
嘗試了很多解決方法:
1) 使用execute JavaScript : return $("#XXX").is(":hidden");? + Wait Until Keyword Succeeds
? ? 這種方法有時會報JavaScript Error
2) 使用 Wait Until Element Is Not Visible ? ?id=XXX
? ? 這種方法會報Stale Element Reference Exception
3) 最后使用 Wait For Condition ? ? ? ? ?return $("#J_LoadPage").is(":hidden");
? ? 似乎可以成功
2、Jenkins + Selenium + IE 出現 WebDriverException: Message: Failed to navigate tohttp://xxxx/x. This usually means that a call to the COM method IWebBrowser2::Navigate2() failed.
這是由于用作Jenkins slave的那臺機器,將啟動slave的服務作為了windows服務自啟動了,同時又從jenkins上執行了本機的ie自動化,可能有沖突,ie總是無法成功執行。
解決方法:
1)去掉windows服務,改用java命令行或者客服端,但是這樣的話就無法開機自啟動
2)使用selenium-grid,ie連接一個hub,啟動瀏覽器時使用remote-url就行,這樣就不會有沖突了