使用Selenium Web Driver还是Selenium RC?

5

使用Selenium Web Driver而不是Selenium RC开始新的测试框架是否是一个好主意?因为Selenium Web Driver并没有实现所有的Selenium方法,所以使用Selenium RC是否是个好主意呢?

谢谢!

4个回答

3

WebDriver。之所以选择WebDriver,是因为它正在积极开发和维护,更加稳定和功能强大,具有更好的API。

RC已不再被开发和维护,WebDriver是Selenium的未来。


我想使用Selenium捕获网络流量。我可以使用RC的.start("captureNetworkTraffic=true")和.stop()来实现。我没有看到使用WebDriver的其他方法。那么我应该使用WebDriver吗? - Sameer Sawla

2
Selenium-WebDriver使用浏览器的本地自动化支持来直接调用浏览器。这些直接调用的方式以及它们所支持的功能取决于您使用的浏览器。有关每个"浏览器驱动程序"的信息请参考官网。
对于熟悉Selenium-RC的人来说,这与您习惯的方式非常不同。 Selenium-RC为每个支持的浏览器使用相同的方式。当浏览器加载并使用其javascript驱动AUT时,它向浏览器“注入”javascript函数。WebDriver不使用此技术。再次强调,它使用浏览器内置的自动化支持直接驱动浏览器。
因此,最好使用WebDriver。

1
我建议使用Web Driver。相比Selenium RC,Web Driver的测试执行速度更快。在Selenium RC中,您需要单独启动独立服务器,但在Web Driver中,由于它具有本地调用,您不需要为此麻烦自己。
当涉及到处理浏览器弹出窗口、警报、父子窗口时,Web Driver是最好的解决方案。在任何浏览器中捕获屏幕截图对于Web Driver来说也不是问题。拖放也支持移动测试自动化。如果您需要在静默模式下执行测试(无需打开浏览器),只有Web Driver才能处理它。
还有一个很酷的参考测试自动化框架,使用Web Driver、NUnit和Log4Net构建。它被称为“SeShell”http://seshell.org,您可以下载设置并体验Web Driver的强大功能。

1

这取决于你需要做什么。

然而,我发现Selenium RC是更好的选择,因为我可以编写一个测试程序,连接到ant以便使用持续集成/构建系统定期运行单元测试。

我确实不得不编写一些包装方法来模拟以前在RC中只需一行代码的事情。最大的问题是将测试从Selenium IDE转换为Web Driver时经常会跳过许多命令,因为它们没有被实现。

管理弹出窗口是最烦人的部分。您必须找到新的窗口句柄,切换到它,完成工作,调用close(),然后切换回第一个窗口。最后一部分非常关键,否则套件的其余部分将由于浏览器关闭而失败。

现在,Ant直接启动浏览器(通过junit @beforeclass),而不是使用Jenkins Selenium插件在Selenium网格上运行它。


1
你认为我们为什么不能使用基于WebDriver的测试做到同样的事情呢?我已经在Hudson上运行了它们。 - Aravind Yarram

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接