如果元素包含在frame中,默认处理外层元素,内层元素要处理就得切换iframe
1、默认支持 id 和 name 属性值查找:
driver.switch_to.frame('id')
driver.switch_to.frame('name')
2、通过元素索引切换
注意:索引从0开始,只有同级可以使用索引切换,如果是嵌套的frame是不可以使用索引切换的
driver.switch_to.frame(0)
driver.switch_to.frame(1)
3、通过WebElement对象切换iframe
#先定位frame元素
ifame = driver.find_element(By.XPATH, 'xxx')
#切换iframe
driver.switch_to.frame(ifame)
4、多层嵌套iframe切换:多层嵌套的情况下,如果要从主界面切换到第二层iframe,则需要一层一层的切换进去
<html>
<iframe src="a.html" id="frame1">
<iframe src="b.html" id="frame2" >
<input id="kw" / >
</iframe>
</iframe>
</html>
#先进入frame1
driver.switch_to.frame("frame1")
#再进入frame2
driver.switch_to.frame("frame2")
5、返回上一级:
driver.switch_to.parent_frame()
返回主页面:
driver.switch_to.default_content()