《手把手教你》系列练习篇之8-python+ selenium自动化测试 -压台篇(详细教程)
北京-宏哥 人气:01. 简介
本文是练习篇的最后一篇文章,虽然练习篇的文章到此就要和大家说拜拜了,但是我们的学习之路才刚刚开始。不要停下你的脚步,大步朝前走吧!比你优秀的人还在走着,我们有什么理由停下自己的脚步了,生命不止,学习亦是如此。好了,宏哥的毒鸡汤好
喝吧,喝够了就开始学习吧。
本文主要是练习如何处理iframe切换、处理alert弹窗、获取当前页面全部信息、获取页面href属性和如何截图保存等等内容,希望小伙伴或者童鞋们喜欢哈!!!
2. 处理iframe切换
本文介绍如何利用Selenium中方法,在不同iframe中切换。
问题:有时候我们发现元素定位没问题,在测试回放的过程,发现就是找不到元素报错。
2.1 示例一:
由于没有找到合适的iframe网站,这里不好用代码举例,简单文字加图片来介绍。但是宏哥辗转反侧的睡不着,最后实在是没招了。于是自己写了一个简陋比较low的网页,利用iframe网页框架,把网页分成上下两个不同iframe控制的页面,把下面html代码保存到
一个记事本,然后修改名称为index.html。
2.2 index.html
<html> <head><title>iframe test page</title></head> <body> <iframe id="frame1" src="https://www.baidu.com" name="slider" height="325" width="550"></iframe> <br> <iframe id="frame2" src="http://example.com" name="example" height="325" width="550"></iframe> </body> </html>
用本地浏览器打开如下图:
用firepath来获得百度文本输入框的XPath截图
看到了红圈位置不是显示Top Window,说明你要定位的目标元素在一个iframe里,如果要操作这个元素,首先需要从默认的Top Window,利用switch_to.frame('iframeid')方法来切换到具体的iframe,然后才能去操作目标元素。
正常百度页面,文本输入框截图
方法介绍:
driver.switch_to.frame("iframe1")
# 操作目标元素,这个目标元素在 iframe1里面,这里就是百度文本输入框输入文字
driver.switch_to.default_content()
如果有具体项目页面利用了iframe, 自己动手写一下脚本。
2.3 示例二:
宏哥最后终于找到了一个合适的demo来给小伙伴们或者童鞋们来用代码实际演练的例子如下:
步骤:
1.先确认你要操作的元素,是否存在与iframe中,如果元素在iframe中就需要切换
2.找到该iframe
3.切换到该iframe (两种方式)
第一种方式:有三种方法,只是单纯的切换
driver.switch_to.frame(1) #通过index(下标)
driver.switch_to.frame('login_frame_qq') #通过name
driver.switch_to.frame(driver.find_element_by_xpath('//iframe[@name="login_frame_qq"]')) #通过webelement
第两种方式:既等待元素可见又进行了iframe切换
WebDriverWait(driver,20).until(EC.frame_to_be_available_and_switch_to_it('login_frame_qq'))
4.切换完后,就以这个iframe中的html为主html
5.返回默认的html页面,无论现在在那一层的iframe,执行一次即可。
driver.switch_to.default_content()
2.3.1 代码实现:
2.3.2 参考代码:
# coding=utf-8
加载全部内容
- 猜你喜欢
- 用户评论