您可以使用所选语言的全部功能。例如,使用 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,您还可以使用单元测试框架的全部功能(通常是带有 C# 的 NUnit 或用于 Java 的 Junit/TestNG)。这允许对每个浏览器重复测试(即在 Chrome、Firefox 和 IE 中重复测试)或在测试前后定义某些逻辑(即添加用户成员资格、创建用户、设置其他测试数据)。
如果它使用编程语言而不是脚本语言(即 WebDriver 是用编程语言编写的,IDE 脚本只是 HTML 文件),其他开发人员可能更倾向于提供帮助。将其放入您的解决方案并将其作为夜间构建过程的一部分有助于确保开发人员在您的测试进程中提供帮助。
想一想,另一个例子是修复了一个错误,但引入了一个新错误,导致您的测试失败。谁负责修复测试?你还是他们?让它直接使用 WebDriver,他们只需查找 Selenium 的源代码并自己弄清楚 API 的使用情况。对于 IDE,它实际上是一个调用一些 javascipt 的 HTML 文件。关于它的文档不多。
总结一下:如果你没有太多的编程经验,要么学习一门语言并直接使用 WebDriver,要么就坚持使用 IDE。要么完成这项工作。