Python+selenium自动化测试之13----iframe嵌套定位

iframe是HTML标签,作用是文档中的文档,或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架(即行内框架)。可以把需要的文本放置在<iframe>和</iframe>之间,这样就可以应对无法理解iframe的浏览器。

浏览器支持

Python+selenium自动化测试之13----iframe嵌套定位 还是以腾讯邮件为例,上一篇文章中,邮件列表就是iframe框架内。

Iframe切换

邮件列表在iframe框架内,想要点击邮件,就需要先切换到iframe内,iframe切换的方法:switch_to.frame(),因为邮箱内每封邮件属性基本相同,可以查询出这类独有的属性,并按照角标点击邮件。

Python+selenium自动化测试之13----iframe嵌套定位

Python+selenium自动化测试之13----iframe嵌套定位

 

上面使用的定位方式用的find_elements_by_class_name(),上一篇文章介绍了通过下标点击查看邮件,那么如何退出呢?

退出iframe

进入iframe框架内,框架外的元素无法点击,那么就需要退出当前iframe,才可以点击框架外的元素。

Python+selenium自动化测试之13----iframe嵌套定位

这里的iframe的ID为mainFrame,如果iframe没有ID或name等,可以通过下标进行定位driver.switch_to.frame(1)。

嵌套iframe

其实很简单,只要一层层定位iframe,定位到想要的那层iframe即可。同样,操作完成iframe内元素后,也只能一层层的退出,再去定位其他层次的元素。

跳转回最外层的表单可以使用: driver.switch_to.default_content()

跳转回上一层表单可以使用driver.switch_to.partent_frame()