使用Selenium Web驱动程序而不是Selenium RC开始新的测试框架是一个好主意吗? 使用Selenium Web驱动程序并非所有Selenium方法都已实现。那么使用Selenium RC是个好主意吗?
谢谢!
答案 0 :(得分:3)
的webdriver。仅仅因为WebDriver正在积极开发和维护,更稳定和更实用,具有更好的API。
RC不再开发和维护,WebDriver是Selenium的未来。
答案 1 :(得分:2)
Selenium-WebDriver使用每个浏览器对自动化的本机支持直接调用浏览器。如何进行这些直接调用,以及它们支持的功能取决于您使用的浏览器。有关每个“浏览器驱动程序”的信息。
对于那些熟悉Selenium-RC的人来说,这与你习惯的完全不同。 Selenium-RC以相同的方式为每个支持的浏览器工作。它在浏览器加载时将“javascript函数”注入浏览器,然后使用其javascript在浏览器中驱动AUT。 WebDriver不使用此技术。同样,它使用浏览器内置的自动化支持直接驱动浏览器。
最好使用webdriver。
答案 2 :(得分:1)
这取决于你需要做什么。 然而,我发现selenium RC是一个更好的选择,因为我可以编写一个连接到ant的测试程序来定期运行单元测试并使用持续集成/构建系统。
我确实必须编写一些包装器方法来模拟以前在RC中使用一个衬里的东西。最大的问题是将测试从Selenium IDE转换为Web驱动程序通常会跳过很多命令,因为它们没有实现。
管理弹出窗口是最烦人的部分。你必须找到新窗口句柄,切换到它,做你的工作,调用close()然后切换回第一个窗口。最后一部分是关键的,否则套件的其余部分将因浏览器因混乱而关闭而失败。
Ant现在直接启动浏览器(通过junit @beforeclass),而不是使用Jenkins selenium插件在selenium网格上运行它。
答案 3 :(得分:1)
我会推荐网络驱动程序。比较Selenium RC Web驱动程序测试执行要快得多。在Selenium RC中,您需要单独启动独立服务器,但是在Web驱动程序中,因为它具有本机调用,因此您无需为此烦恼。
在处理浏览器弹出窗口时,警报,父子窗口Web驱动程序是最佳解决方案。在任何浏览器中捕获屏幕截图都不是Web驱动程序的问题。拖拽Drop也是web驱动程序支持移动测试自动化。如果您需要执行测试静默模式(不打开浏览器),只有Web驱动程序才能处理它。
有一个很酷的参考测试自动化框架,使用Web驱动程序构建,NUnit& log4net的。它被称为“SeShell”http://seshell.org你可以下载设置,并可以体验一下web驱动程序的强大功能