使用WebDriver而不是IDE有什么好处?

时间:2012-09-29 17:36:22

标签: ide webdriver

我是Selenium的新手,并且花了大约一周的时间使用IDE。到现在为止还挺好。然而,我们的应用程序的其他一些部分涉及严重的拖放功能,我不太确定...这让我想到了...... WebDriver可以做什么类型的特定事情IDE不能做?我阅读了Selenium的首页,并且知道WebDriver可以进行更“强大”的测试,但我不完全清楚在这种情况下有什么强大的意义?更长?更多功能?

我正在寻找的是什么类型的特定测试可以使用无法在IDE中运行的WebDriver运行?它们中的任何一个都与拖放有关吗?这将告知我决定是继续使用IDE还是切换。我认为从一开始就使用一些东西比创建大量测试然后切换更好。

非常感谢。

2 个答案:

答案 0 :(得分:4)

您可以使用所选语言的完整功能。例如,使用IDE时您将无法使用IDE的API,但是如果您选择明确使用WebDriver,则可以将其与C#结合使用并使用C#的完整功能(例如LINQ)。

使用WebDriver无法直接转换一些IDE命令。

您可以将纯WebDriver测试集成到CI(持续集成)服务器中。

它不仅限于Firefox,而IDE(因为IDE仅在Firefox中可用)。

您可以更轻松地改进和扩展Selenium。例如,使用Extension方法和继承。 (例如,扩展Selenium,以便无论何时找不到元素,都会截取页面的截图)

它将更加强大,因为IDE不会总是为您提供查找元素的最可靠方式。例如,如果您需要的元素嵌套在表中,IDE将为您提供的XPath将直接推断到特定的表行和单元格。

例如:

//table[1]/tr[1]/td[2]/table[1]/tr[1]/td[3]/a[1]/b

不是世界上最可靠的XPath。那些不了解XPath或自动化测试或者Selenium如何工作的人将坚持使用它,然后浪费时间弄清楚为什么这个XPath查询失败。其他人会改变它,只使用XPath作为基本查询。

IDE通常应该用于那些没有太多编程知识的人(例如一些测试人员),如果你希望你的开发人员和/或测试开发人员使用Selenium,直接使用WebDriver。它更像是使用完全成熟的语言编程而不是编写脚本(毕竟,IDE生成的脚本是纯HTML文件)。这个想法通常适用于那些没有太多编程知识的人,只需点击“播放”并让Selenium完成工作。

拖放适用于IDE和WebDriver。

Selenium的大部分开发(似乎)都在扩展WebDriver代码,IDE可能会留下一些新功能。

直接使用WebDriver,您还可以使用单元测试框架的全部功能(通常是NUnit with C#或Junit / TestNG for Java)。这允许重复测试每个浏览器(即在Chrome,Firefox和IE中重复测试)或在测试之前和之后定义某些逻辑(即添加用户成员资格,创建用户,设置其他测试数据)。

如果使用编程语言而不是脚本语言,开发人员可能更愿意提供帮助(例如,WebDriver是用编程语言编写的,IDE脚本只是HTML文件)。将它放在您的解决方案中,并将其作为每晚构建过程的一部分,有助于确保开发人员帮助您完成测试进度。

考虑到这一点,另一个例子是修复了一个错误,但引入了一个新的错误,导致你的测试失败。谁负责修复测试?你还是他们?让它直接使用WebDriver,他们只需查找Selenium的源代码并自行计算API使用情况。使用IDE,它实际上是一个调用一些javascipt的HTML文件。关于它的文档不多。

总结一下:如果你没有太多的编程经验,要么学习一门语言并直接使用WebDriver,要么坚持使用IDE。要么做好这个工作。

答案 1 :(得分:0)

IDE不能用于严重的自动化。我想sussgest学习API并将它与Java / C#/ Python一起使用。它将帮助您实现一些良好的自动化,并将很好地回报。

您始终可以使用IDE了解代码的生成方式。