3

我是 Selenium 的新手,使用 IDE 已经花了大约一周的时间。到目前为止,一切都很好。但是,我们应用程序的其他一些部分涉及大量的拖放功能,我对此不太确定......这让我想到了我的问题......WebDriver 可以做哪些类型的特定事情而 IDE 不能做?我阅读了 Selenium 的首页,并且知道 WebDriver 可以进行更“健壮”的测试,但我并不完全清楚在这种情况下健壮是什么意思?更长?更多能力?

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

提前非常感谢。

4

2 回答 2

4

您可以使用所选语言的全部功能。例如,使用 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。要么完成这项工作。

于 2012-09-29T23:58:10.190 回答
0

IDE 不能用于严重的自动化。我建议学习 API 并将其与 Java/C#/Python 一起使用。它将帮助您产生一些良好的自动化,并且会得到很好的回报。

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

于 2012-10-02T14:31:24.860 回答