Python+Selenium练习篇之28-处理iframe切换

来源:互联网 发布:android js语言 编辑:程序博客网 时间:2024/05/22 23:27

本文介绍如何利用Selenium中方法,在不同iframe中切换。

问题:有时候我们发现元素定位没问题,在测试回放的过程,发现就是找不到元素报错。

由于没有找到合适的iframe网站,这里不好用代码举例,简单文字加图片来介绍。

自己写了一个网页,利用iframe网页框架,把网页分成上下两个不同iframe控制的页面,把下面html代码保存到一个记事本,然后修改名称为iframe-demo.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, 自己动手写一下脚本。

0 0
原创粉丝点击