专栏文章 Selenium4 IDE,它终于来了

FunTester · August 31, 2020 · Last by FunTester replied at November 12, 2021 · 5316 hits

新版的 Selenium4 IDE,更强,更全,更好用。

在之前的文章我介绍了,Selenium4.0 的更新路线,其中提到了 Selenium IDE 的发展。

ChromeSelenium IDE支持现已可用。可以从以下网址下载它:https://selenium.dev/selenium-ide/

众所周知,Selenium IDE是一种记录和回放工具。现在它将具有以下更丰富和高级的功能:

  • 新的插件系统。任何浏览器都可以轻松插入新的Selenium4 IDE。您将能够拥有自己的定位器策略和 Selenium IDE 插件。 新的CLI运行器。它将完全基于NodeJS,而不是基于HTML的旧运行器,并将具有以下功能:
  • WebDriver播放。新的Selenium4 IDE运行程序将完全基于WebDriver
  • 并行执行。新的 CLI 运行器还将支持并行测试用例执行,并将提供有用的信息,例如花费的时间,通过和失败的测试用例。

主角 Selenium4 IDE

早期的测试人员通常会避免使用Selenium IDE等记录和重播工具进行自动化测试,而宁愿选择使用Selenium WebdriverWebDriverIOCypress等脚本框架。毕竟,为什么不使用这些工具,事实证明它们是更有效,对测试的帮助更多!

尽管Selenium IDE提供了易用性,但它仍然存在很多问题,它不支持跨浏览器测试,运行并行测试等等。这就是原因,当Selenium IDE的开发于 2017 年停止更新时,许多测试人员都对Selenium IDE死亡并不感到惋惜。

但是,随着Selenium4 IDE再次受到关注并且其使用率逐渐增加,这种情况最近有所改变。原因是Selenium4 IDE克服了以前的局限性,现在支持跨浏览器测试并行测试脚本注入debug调试CI/CD等等!

Selenium IDE 历史回顾

Selenium IDE于 2006 年推出,是一种用于开发Selenium测试用例的记录和重播工具。Selenium IDE易于上手,因为不需要任何特殊设置和基础。要开始使用Selenium IDE进行Selenium测试自动化,只需要为相应的浏览器安装扩展(或附加组件)。Selenium IDE提供了一个GUI,用于记录与网站的交互。

尽管Selenium IDE先前仅适用于Firefox,但现在也适用于ChromeSelenium IDE的最新版本是3.17.0。可以使用下面的链接下载 Selenium IDE 的 Chrome 和 Firefox 扩展。

安装扩展后,就可以开始记录测试。与网站的交互被记录并归类为以下几类:命令、目标对象、值、说明(可选)。

欢迎页

主页面

Selenium4 IDE 的主要功能

Selenium4 IDE是一个易于使用的工具,可提供即时反馈,并可以使用Selenium IDESIDE文件(或命令行)运行器在任何浏览器 + 操作系统组合上运行测试。

以下是一些关键功能:

  • 执行测试(和测试套件):Selenium4 IDE可以执行特定的测试或包含一组测试的完整测试套件。
  • 跨浏览器测试:它可以用于自动浏览器测试,因为可以使用SIDE文件运行器执行跨浏览器测试。
  • 调试:设置断点并暂停异常,可以很容易地从IDE本身调试测试。
  • 丰富的命令集:Selenium4 IDE支持许多命令,这些命令可用于处理断言、插入脚本、创建循环等。
  • 逻辑控制:Selenium4 IDE具有广泛的命令集,可启用控制流结构。ifif..elsewhile等命令有助于从IDE执行条件判断的测试。
  • 测试用例重用:运行命令使您可以在另一个测试用例(或测试套件)中重用特定的测试用例。
  • Selenese命令的分组:Selenium4 IDE支持Selenese命令(或Selenium命令集)的分组,可以运行测试,一系列Selenese命令构成一个测试脚本。
  • 轻松修改和比较测试用例–使用Selenium4 IDE创建的测试脚本存储为JSON文件。这样可以轻松比较,修改和检查测试。

下面显示了我们的Selenium4 IDE教程录制了一个使用必应搜索FunTester的教程,随手点击一个链接进去。


{
  "id": "ab514091-68ca-4b4c-a232-587a0b82fcaa",
  "version": "2.0",
  "name": "FunTester",
  "url": "https://cn.bing.com",
  "tests": [{
    "id": "e34fd206-9ab8-4a6c-a543-0f80d1ba3fe9",
    "name": "FunTester",
    "commands": [{
      "id": "92e8a427-e37e-4c6b-88c4-718d4e6c606e",
      "comment": "",
      "command": "open",
      "target": "/",
      "targets": [],
      "value": ""
    }, {
      "id": "780adf28-4694-4c22-bfd1-74e09bf80775",
      "comment": "",
      "command": "setWindowSize",
      "target": "1680x1027",
      "targets": [],
      "value": ""
    }, {
      "id": "2d8284e8-8475-4d75-9740-b407d6317b95",
      "comment": "",
      "command": "click",
      "target": "id=sb_form_q",
      "targets": [
        ["id=sb_form_q", "id"],
        ["name=q", "name"],
        ["css=#sb_form_q", "css:finder"],
        ["xpath=//input[@id='sb_form_q']", "xpath:attributes"],
        ["xpath=//form[@id='sb_form']/div/input", "xpath:idRelative"],
        ["xpath=//input", "xpath:position"]
      ],
      "value": ""
    }, {
      "id": "ddd0e97d-6474-4a3e-a260-02f3a573f84f",
      "comment": "",
      "command": "type",
      "target": "id=sb_form_q",
      "targets": [
        ["id=sb_form_q", "id"],
        ["name=q", "name"],
        ["css=#sb_form_q", "css:finder"],
        ["xpath=//input[@id='sb_form_q']", "xpath:attributes"],
        ["xpath=//form[@id='sb_form']/div/input", "xpath:idRelative"],
        ["xpath=//input", "xpath:position"]
      ],
      "value": "FunTester"
    }, {
      "id": "959e1353-de22-4997-9b26-3ed02a55d3d6",
      "comment": "",
      "command": "sendKeys",
      "target": "id=sb_form_q",
      "targets": [
        ["id=sb_form_q", "id"],
        ["name=q", "name"],
        ["css=#sb_form_q", "css:finder"],
        ["xpath=//input[@id='sb_form_q']", "xpath:attributes"],
        ["xpath=//form[@id='sb_form']/div/input", "xpath:idRelative"],
        ["xpath=//input", "xpath:position"]
      ],
      "value": "${KEY_ENTER}"
    }, {
      "id": "d964cc49-1d76-41e2-b2aa-e0ad34da2999",
      "comment": "",
      "command": "click",
      "target": "linkText=FunTester - 知乎",
      "targets": [
        ["linkText=FunTester - 知乎", "linkText"],
        ["css=.b_algo:nth-child(5) > h2 > a", "css:finder"],
        ["xpath=//a[contains(text(),'FunTester - 知乎')]", "xpath:link"],
        ["xpath=//ol[@id='b_results']/li[5]/h2/a", "xpath:idRelative"],
        ["xpath=//a[contains(@href, 'https://www.zhihu.com/people/ba-yin-xian/posts')]", "xpath:href"],
        ["xpath=//li[5]/h2/a", "xpath:position"],
        ["xpath=//a[contains(.,'FunTester - 知乎')]", "xpath:innerText"]
      ],
      "value": "",
      "opensWindow": true,
      "windowHandleName": "win2584",
      "windowTimeout": 2000
    }]
  }],
  "suites": [{
    "id": "5915a8a1-cce3-42f9-ad68-5022d7fcfc1f",
    "name": "Default Suite",
    "persistSession": false,
    "parallel": false,
    "timeout": 300,
    "tests": ["e34fd206-9ab8-4a6c-a543-0f80d1ba3fe9"]
  }],
  "urls": ["https://cn.bing.com/"],
  "plugins": []
}

对于需要进行自动浏览器测试的测试人员,Selenium4 IDE是一个非常值得探索的选择。

关于Selenium4 IDE的新特性,如果各位有需求的话,我会逐个更新简单的入门讲解,由于本人现在主要从事服务端的测试工作,对于Selenium4 IDE后面的高阶功能,如:并行测试、分布式兼容性测试等等略显有心无力,可能更新会比较慢。


  • 公众号FunTester首发,更多原创文章:450+ 原创文章,欢迎关注、交流,禁止第三方擅自转载。

热文精选

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 6 条回复 时间 点赞

appium2.0 什么进度啊大佬

抱歉,端上测试关注的少,暂时还没有这方面消息。下次遇到一定更新出来。

想请教下 selenium 可以测试插件吗?

Elsie 回复

我没这方面实践经验,抱歉。

你这还是 IDE 插件 3.17 版本的呀,去哪里有最新的 4.0 的插件呢

拾玖 回复

SeleniumIDE 版本和 Selenium 版本不统一。

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up