您的位置:首页 > 编程语言 > Python开发

python+selenium自动化测试--iframe切换

2018-01-04 16:13 537 查看
本文参考偶像Anthony_tester博客编写。

学习测试目前没遇到合适的iframe网站,于是采用偶像自己编写的一个网页,此网页利用iframe网页框架,把网页分成上下两个不同iframe控制的页面。

<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>


将代码保存在记事本里,重命名为:iframe-demo.html

本地浏览器打开如下:



通过F12定位百度输入框元素,查看此网页和百度首页的不同:

此网页下百度输入框位于一个iframe里。



如果想要操作这个元素需要从默认的Top Window利用switch_to.frame()切换到具体的iframe,然后才能操作目标元素。

代码如下:

driver.get("file:///C:/Users/Administrator/Desktop/iframe-demo.html")
driver.switch_to.frame("frame1")
driver.find_element_by_id('kw').send_keys('胡歌')


假如不切换iframe,即注释掉

driver.switch_to.frame(“frame1”)

将报如下错误:



【注】学习到现在,发现在selenium只要涉及到切换都是用switch_to,如:

切换iframe: driver.switch_to.frame(“frame1”)

切换window: driver.switch_to.window(handles[-1])

切换alert弹窗: driver.switch_to.alert
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息