ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【Web自动化总结】Selenium处理特殊页面元素技巧

2021-12-30 10:05:15  阅读:139  来源: 互联网

标签:Web 软件测试 frame 元素 Selenium Alert alert Frame 页面


本文章出自【码同学软件测试】

码同学公众号:自动化软件测试,领取资料可加:Matongxue_8

码同学抖音号:小码哥聊软件测试

 

Selenium是目前主流的UI自动化框架,能够识别和操作网页元素。它提供八种基本的定位方式,能够通过id,name,text,css,xpath等识别网页元素。

除了这些基本元素的识别和操作,我们在日常工作中还会遇到很多特殊情况,包括:

• 页面框架frame元素

• 提示框Alert元素

• 多窗口切换

• 自定义前端组件

• 网页内嵌windows控件

• .....

本系列将会针对这些特殊元素做一一讲解,本文主要介绍Frame元素和Alert元素

 

Frame元素

 

HTML框架标签

 

免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可加微信:Matongxue_8

 

 

网页是否有frame取决于前端开发的设计和实现,对测试人员来说,需要分清元素是否在frame中,针对不同情况不同处理:

• 不在frame中的元素,按普通定位方式即可

• 在frame中的元素,先切换到frame中再进行定位;切换到frame以后,只能处理frame中的元素,要处理frame外的普通元素需要先跳出frame。

• 有多层嵌套frame元素需要逐层跳入处理

Frame元素判定

 

正常情况下,不需要考虑元素是否在iframe中,当元素抓取不到的时候,打开浏览器调试工具,选中元素,查看看从根html节点到元素的路径:

• 如果路径中没有iframe或者frame,说明元素不在frame中

• 如果路径中有且只有一个frame(普通frame情况)

• 如果路径中有多个多个frame(frame嵌套frame)

 

Frame跳入处理

 

Selenium提供三种方式跳入Frame:

• driver.switchTo().frame(index) :通过index找到frame并跳入

• driver.switchTo().frame(name):通过name找到frame并跳入

• driver.switchTo().frame(webelement):通过WebElement找到frame并跳入

 

Farme跳出处理

 

Selenium提供两种跳出方式:

• driver.switchTo().defaultContent(): 从当前frame跳出到主文档

• driver.switchTo().parentFrame():从当前frame跳到父级frame

当有多层frame嵌套时需要区分parentFrame和defaultContent。

 

Alert元素

 

Alert是HTML组件,用作消息提示

常见的Alert元素外观如下:

 

免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可加微信:Matongxue_8

 

Alert元素以后,必须先对Alert元素进行操作,才能继续进行界面其他操作。

 

Alert元素判定

 

相对Frame元素,Alert元素的外观非常明显,网页弹窗有较大概率是Alert元素。除了观察UI界面,还可以通过以下方式来进一步判定:

• 出现Alert元素以后,页面其他元素无法操作, Chrome F12无法获取元素定位信息

• 通过代码获取alertObj ,如果alertObj为null说明当前页面无Alert,如果 alertObj不为空则说明当前页面有Alert

 

Alert元素处理

 

和Frame元素一样,要处理Alert元素需要先切换到Alert元素上,由于Alert元素在一个时间点只可能出现一个,此处切换alert方法无需输入参数

• driver.switchTo().alert()

切到Alert元素并进行处理(确定/取消)以后,selenium会自动返回到切换前的HTML页面。Selenium提供了三个方法来处理Alert元素

• alert.accept(): 点击alert的确定按钮,关闭当前弹窗

• alert.dismiss():点击alert的取消按钮,关闭当前弹窗

• alert.getText():获取alert的提示值,下图弹窗中的提示值为"欢迎光临"

欲知后事如何,请听下回分解~

 

END

免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频 ☞ 可加:Matongxue_8/关注码同学公众号

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

标签:Web,软件测试,frame,元素,Selenium,Alert,alert,Frame,页面
来源: https://www.cnblogs.com/testfan2019/p/15747573.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有