2012-11-28 20 views
0

我的硒測試失敗,出現PHPUnit_Extensions_Selenium2TestCase_NoSeleniumException異常。但並不總是,並不總是在同一個元素上。PHPUnit/Selenium 2在ajax-heavy webapp上隨機失敗

我懷疑這與執行速度有關,即執行選擇器時元素還不可見。

我尋覓這樣,但發現大部分涉及WebdriverWait無論是與Java相關的建議(不PHPUnit中/硒只要我能找到),或處理舊的硒RC命令,如waitForPageLoad等

怎麼辦我讓這些測試更穩定?我是否應該將選擇的元素包裝在一個函數中重複嘗試(對於一定量的迭代)來選擇元素,在迭代之間使用sleep()?這是什麼常見/最佳做法?

回答

0

我想我已經找到了問題。我最初的想法是,硒需要更多時間來定位元素,看起來不正確。硒服務器花了一些時間做「執行:[查找元素:...」,但隨後立即跟進「執行:[刪除會話:...」。

因此,這解釋了爲什麼睡眠()或類似的東西沒有幫助我的測試。

使用谷歌搜索一些,我發現這個Google Groups discussion。 因此,我目前的Selenium Server,2.26.0似乎不適合我的FF 17.0。我通過安裝ChromeDriver並在Chrome上重複運行我的測試進行了驗證。

所以,現在我可以選擇:

  1. 嘗試和編譯的最新源排序的出血,邊緣的硒 ,看看它是否工作對FF17
  2. 降級FF到16.0或更低
  3. 使用Chrome瀏覽器(和IE和Opera等)對我的測試,直到2.27.0到達

我真的要降級,所以現在我要選擇3和運行我對Chrome的測試。無論如何,這只是功能測試的初始設置,因此將測試擴展到多個瀏覽器可以稍後完成。

編輯:現在用Selenium再次使用FireFox 2.27.0