【问题标题】:What are advantages of using WebDriver over IDE?与 IDE 相比,使用 WebDriver 有什么优势?
【发布时间】:2023-03-25 19:40:02
【问题描述】:

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

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

非常感谢。

【问题讨论】:

    标签: ide webdriver


    【解决方案1】:

    您可以使用所选语言的全部功能。例如,使用 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。两者都能胜任。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2010-09-24
        • 2010-12-27
        • 2015-04-06
        • 2013-05-09
        • 2017-05-29
        • 2017-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多