2012-04-26 71 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