概述
原标题:【Web自动化总结】Selenium处理特殊页面元素技巧
• 页面框架frame元素
• 提示框Alert元素
• 多窗口切换
• 自定义前端组件
• 网页内嵌windows控件
• .....
本系列将会针对这些特殊元素做一一讲解,本文主要介绍Frame元素和Alert元素
Frame元素
HTML框架标签
网页是否有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元素外观如下:
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的提示值,下图弹窗中的提示值为"欢迎光临"
欲知后事如何,请听下回分解~
参与最新最全免费直播课
享社群答疑服务
还能抢红包哦~
扫码参与免费直播课返回搜狐,查看更多
责任编辑:
最后
以上就是幸福机器猫为你收集整理的selenium 页面经常改变元素_【Web自动化总结】Selenium处理特殊页面元素技巧的全部内容,希望文章能够帮你解决selenium 页面经常改变元素_【Web自动化总结】Selenium处理特殊页面元素技巧所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复