自动化工具 MeterSphere 之 UI 自动化窗口切换

灬囖 · 2023年02月19日 · 最后由 punkhoo 回复于 2023年08月21日 · 8600 次阅读

前言: 最近在做 UI 自动化测试的时候,遇到了一个问题,使用元素定位,怎么都定位不到元素,最后排查下来发现,是因为网页中嵌套了 iframe 页面,定位的元素在 iframe 中,所以需要先定位到 iframe 元素,然后再定位嵌套内的元素才行。
在我们日常工作当中,经常有各种复杂的页面,本篇总结两个比较常用的场景。

本篇是使用 MeterSphere 的方式去定位。关于 MeterSphere 详细信息,请查看官网网站

一、需要定位 iframe 中元素

  • 我们就以网易云为例子,模拟一个打开页面,查询华语歌曲的场景。

最终效果:

1.1 流程分析

第一步:打开网易云
第二部:点击” 华语 “按钮

通过 F12 分析查看,

” 华语 “链接在 iframe 页面里面,所以,当我们直接定位” 华语 “链接是定位不到的。
如图:

就会报错,找不到元素。所以我们需要先定位 iframe,然后再定位” 华语 “

1.2 正确操作

如上图所示

  1. 选择 “浏览器操作”
  2. 选择 “内嵌网页”
  3. 选择 “根据定位方式切换 iframe”
  4. 定位要定位的 iframe 元素

1.3 结果

我们点开截图,可以看到,正是我们所需要的效果。

二、需要定位新窗口元素

  • 我们以淘宝为例子,模拟打开一个新窗口登录的场景。

最终效果:

会弹出新窗口,填写登录信息。

2.1 流程分析

  1. 访问淘宝地址
  2. 点击某个类目,会跳转一个新的窗口。
  3. 切换新窗口,填写账号信息。

2.2 正确操作

按照正常的步骤,我们添加一个切换窗口的操作。

  1. 选择 “浏览器操作”
  2. 选择 “切换窗口”
  3. 选择 “根据网页索引号切换到指定窗口”
  4. 填写网页索引号

2.3 结果

根据以上操作,可以查看所需结果是正确的。

三、总结

  1. 以上是我们日常工作中比较常见的两种场景:
    1. iframe 嵌套定位
    2. 新窗口定位
  2. MeterSphere 的底层实现也是 Selenium 为工具实现的,所以我们只需要按照 Selenium 的操作即可。
共收到 11 条回复 时间 点赞

看看付费功能

为什么我实用 UI 自动化测试,界面与你的不同

tangoliver 回复

哈哈,快去注册,可以免费体验 https://cloud.metersphere.com/

这个只要做过 UI 自动化的不是基本常识吗?

徐汪成 回复

主要是想介绍 MeterSphere 这个工具的吧

我们的是私有化部署的哈。你的应该是 cloud 版本的

灬囖 回复

楼主,麻烦问一下,你用的是 MeterSphere 的几版本;我这边自己本地部署成功,web 页面是无法访问的

私有化部署才有,请联系销售经理😁

为什么我部署完没有 ui-test 功能呀?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册