2

我的团队已经开始使用 selenium 来做 IE 浏览器测试。一个主要的症结在于 selenium 很难(阅读:看似不可能)确定页面何时完全加载。我们使用了大量的 javascript、相当数量的 AJAX 和少量的第三方控件。因此,很难知道所有活动何时完成并且页面已准备好进行测试。大部分代码都是遗留的,所以简单地重写或重构页面不是一种选择——它是一个非常大的企业应用程序。

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

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

切换到另一个浏览器根本不可能,我们必须找到一个适用于 IE 的解决方案。我正在尝试决定是否值得我们花时间调查 watin,或者我们是否只是将一组限制换成另一组限制。

4

2 回答 2

3

我使用 WatiN 已经有一段时间了,最​​近又改用 Selenium,因为我觉得它实际上比 WatiN 更好地处理了你解释的情况(可以在 Selenium WebDriver 的驱动程序上创建一个“等待”)。但是,我认为这真的是一个见仁见智的问题。WatiN 仅适用于 IE,因此您仅限于此,无法扩展到其他浏览器。由于这个原因,WatiN 是为 IE 设计的,这表明你可能会在 IE 上获得更好的成功。

附带说明一下,您是否尝试过使用 Windows 调用来检查浏览器是否已完成加载?我相信这是可能的?在 Selenium 中添加 XPath 可能相当有用,但在 IE 中速度较慢。

编辑:或者,您不能调用一些 javascript 来查看页面上的 javascript 何时完成吗?

编辑编辑:这篇文章也涵盖了很多比较和意见。

于 2012-04-26T03:12:01.493 回答
1

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

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

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

于 2012-04-26T07:01:29.067 回答