与硒相比,watin如何测试IE?

时间:2012-04-26 02:31:06

标签: selenium automation watin

我的团队已开始使用selenium进行IE浏览器测试。一个主要的问题是,当页面完全加载完成时,硒有一个很难(读:看似不可能)的时间。我们使用了大量的JavaScript,相当数量的AJAX以及一些第三方控件。因此,很难知道所有活动何时完成并且页面已准备好进行测试。这些代码大部分是遗留的,所以简单地重写或重构页面不是一个选择 - 它是一个非常大的企业应用程序。

我的主要问题是:Watin在这方面有更好的表现吗?它是否有任何内置机制来检测页面何时完全加载?

遗憾的是,我们不能只等待元素变得可见,这是硒的普遍接受的做法。我们经常处理一个滚动的动态元素列表,需要等待javacript完成,因为有一个不确定的(测试)数量的元素,我们必须等待。

切换到另一个浏览器根本不可能,我们必须找到一个适用于IE的解决方案。我正在试图决定是否值得我们花时间研究一下watin,或者我们是否会为另一个人交换一套限制。

2 个答案:

答案 0 :(得分:3)

我使用WatiN已经有一段时间了,并且最近有更多切换到Selenium,因为我觉得它实际上处理了你比WatiN更好解释的情况(可以在Selenium WebDriver中的驱动程序上创建'等待') 。但是,我认为这最终只是一个意见问题。 WatiN只适用于IE,所以你只能使用它,不能分支到其他浏览器。因此,WatiN是为IE制作的,这表明你可能在IE上取得了更好的成功。

作为旁注,您是否尝试过使用Windows调用来检查浏览器是否已完成加载?我相信这是可能的吗?在Selenium中添加XPath可能相当有用,但IE很慢。

编辑:或者,您是否可以调用一些javascript来查看页面上的javascript何时完成?

编辑编辑:this post也涵盖了很多比较和意见。

答案 1 :(得分:1)

就我与WatiN的工作而言,它比Selenium更容易。我们也有很多javascript,ajax - 我的解决方案就是使用

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

等待特定的javascript完成它的工作。 Selenium可能有类似的方法。