webdriver切换frame的方法

iframe:

iframe 就是一个特殊的html 元素 它在原来的html 范围内开辟了一个新的HTML

iframe 元素会创建包含另外一个文档的内联框架(即行内框架)

理解:网页嵌套网页

frameset:   frameset 元素可定义一个框架集。它被用来组织多个窗口(框架)。每个框架存有独立的文档。


<html>
<frameset cols="25%,50%,25%">
  <frame src="frame_a.htm" />
  <frame src="frame_b.htm" />
  <frame src="frame_c.htm" />
</frameset>
</html>

两者的区别是:

iframe 用于在网页内显示网页。和frameset不同的是,

frameset内置好几个子html

iframe 只内置一个子html

webdriver 切换frame方法:driver.switch_to.frame(frame_reference)

frame_reference

  以QQ邮箱登录界面查找账号密码登录元素为例:

  1. frame 元素的 name 属性值 或者ID属性值 :driver.switch_to.frame('login_frame')
  2. 索引值 (从0开始):0  driver.switch_to.frame(1)
  3. frame 所对应的WebElement:driver.switch_to.frame(driver.find_element_by_id('login_frame'))

嵌套frame中如何逐层切换?

<html>
    <iframe id="layer1">
        <iframe id="layer2" / >
    </iframe>
</html>

操作:

嵌套frame需要一层一层的切换

driver.switch_to.frame('layer1')
driver.switch_to.frame('layer2')

返回上一层frame

driver.switch_to.parent_frame()

从里面的frame切换回主HTML

driver.switch_to.default_content()
原文地址:https://www.cnblogs.com/aiyumo/p/11771517.html