与IDE相比,使用WebDriver有哪些优势?

与IDE相比,使用WebDriver有哪些优势?,ide,webdriver,Ide,Webdriver,我对Selenium是新手,已经用了大约一周的时间使用IDE。到目前为止,一切顺利。然而,我们应用程序的其他部分涉及大量拖放功能,对此我不太确定……这就引出了我的问题……WebDriver可以做哪些IDE不能做的特定事情?我阅读了Selenium的头版,知道WebDriver可以进行更“健壮”的测试,但我不完全清楚在这种情况下健壮意味着什么?比较长的更多功能 我要寻找的是什么类型的特定测试可以使用WebDriver运行,而不能在IDE中运行?其中有没有与拖放有关?这将通知我关于是继续使用IDE还

我对Selenium是新手,已经用了大约一周的时间使用IDE。到目前为止,一切顺利。然而,我们应用程序的其他部分涉及大量拖放功能,对此我不太确定……这就引出了我的问题……WebDriver可以做哪些IDE不能做的特定事情?我阅读了Selenium的头版,知道WebDriver可以进行更“健壮”的测试,但我不完全清楚在这种情况下健壮意味着什么?比较长的更多功能

我要寻找的是什么类型的特定测试可以使用WebDriver运行,而不能在IDE中运行?其中有没有与拖放有关?这将通知我关于是继续使用IDE还是切换的决定。我认为最好从一开始就使用一些东西,而不是创建大量测试然后切换


非常感谢。

您可以使用所选语言的全部功能。例如,使用IDE时,您必须使用IDE的API,但是如果您选择显式使用WebDriver,则可以将其与C结合使用,并使用C的全部功能(如LINQ)

一些IDE命令不能直接用WebDriver转换

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

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

您可以更轻松地改进和扩展Selenium。例如,使用扩展方法和继承。(例如,扩展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与C#或Junit/TestNG for Java)。这允许为每个浏览器重复测试(即在Chrome、Firefox和IE中重复测试)或在测试前后定义某些逻辑(即添加用户成员资格、创建用户、设置其他测试数据)

如果它使用的是编程语言而不是脚本语言(即WebDriver是用编程语言编程的,IDE脚本只是HTML文件),那么其他开发人员可能更倾向于提供帮助。将它放在您的解决方案中,并将其作为夜间构建过程的一部分,有助于确保开发人员在您的测试过程中提供帮助

考虑一下,另一个例子是一个bug已经修复,但是引入了一个新的bug,它会导致测试失败。谁的责任是修复测试?你还是他们?让它直接使用WebDriver,他们只需查找Selenium的源代码,自己就可以了解API的使用情况。在IDE中,它实际上是一个调用javascipt的HTML文件。没有太多关于它的文档


总而言之:如果你没有太多的编程经验,要么学习一门语言并直接使用WebDriver,要么坚持使用IDE。两者都可以。IDE不能用于严重的自动化。我最好学习API并将其与Java/C#/Python一起使用。它将帮助你生产出一些好的自动化产品,并且会有很好的回报

您总是可以使用IDE来了解代码是如何生成的