2012-04-26 14 views
2

我的團隊已經開始使用硒來做IE瀏覽器測試。一個主要問題在於,當頁面完全加載完畢後,硒會產生困難(看似不可能)的時間。我們使用了大量的JavaScript,相當數量的AJAX以及少量的第三方控件。因此,很難知道所有活動何時完成,並且該頁面已準備好進行測試。這些代碼大部分都是遺留的,所以簡單地重寫或重構頁面不是一種選擇 - 它是一個非常大的企業級應用程序。爲了測試IE,watin和硒的比較如何?

我的主要問題是:Watin在這方面有什麼更好的?它是否有任何內置機制來檢測頁面何時完全加載?

不幸的是,我們不能等待元素變得可見,這是普遍接受的硒的做法。通常我們正在處理一個動態元素的滾動列表,並且需要等待javacript完成,因爲我們必須等待一些不確定的(測試)元素。

切換到另一個瀏覽器根本不可能,我們必須找到一個解決方案,與IE瀏覽器。我試圖決定是否值得我們花時間來調查watin,或者如果我們只是交易另一套限制。

回答

3

我用了WatiN很長一段時間,並且最近更改了Selenium,因爲我覺得它實際上處理的情況比WatiN更好解釋(在Selenium WebDriver的驅動程序中可以創建一個「等待」 )。不過,我認爲這確實是一個意見問題。 WatiN只適用於IE瀏覽器,所以你僅限於此,不能分支到其他瀏覽器。由於這個原因,WatiN是爲IE製作的,暗示你可能對IE有更好的成功。

作爲一個方面說明,您是否嘗試過使用Windows調用來檢查瀏覽器是否已完成加載?我相信這是可能的?在Selenium中添加XPath可能相當有用,儘管IE很慢。

編輯:或者,你不能調用一些JavaScript來查看當頁面上的JavaScript已完成?

編輯編輯:另外this post涵蓋了很多比較和意見。

1

就我與WatiN的合作而言,它比Selenium更容易。我們也有很多的JavaScript,阿賈克斯 - 我的解決方案是使用

WebBrowser.Current.Div(ids.waitForBagGridToLoadIdentifier).WaitUntil("style", "display: none;"); 

等待一個特定的JavaScript來完成它的工作。 Selenium可能有類似的方法。

+0

在硒中有'waitForCondition'這將採取一個JavaScript字符串和超時值。可以看到[這裏](https://community.neustar.biz/community/wpm/blog/2011/03/14/selenium-tips--wait-with-waitforcondition)。 – Nashibukasan 2012-04-26 23:46:33