前言: 最近在做 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 的操作即可。


↙↙↙阅读原文可查看相关链接,并与作者交流