作者:heishi86188 | 来源:互联网 | 2023-08-24 13:01
1、driver.switch_to.frame()一般情况下,我们可以直接通过id或者name切换到frame。driver.switch_to.frame()小括号里面填ifr
1、driver.switch_to.frame()
一般情况下,我们可以直接通过id或者name切换到frame。
driver.switch_to.frame()
小括号里面填iframe标签的id,或name值
如果没有id,或者name,我们可以先定位到iframe标签,再切换到frame
# 根据标签名切换
iframe = driver.find_element_by_tag_name("iframe")
driver.switch_to.frame(iframe)
2、需回主文档,进行定位,使用:driver.switch_to.default_content()
3、嵌多层套iframe的操作
但时候页面会有多层嵌套iframe,这时候我们需要层层切换iframe
比如这个源码中,有三层iframe嵌套,如果我们想定位到id="TeWebEditor这一层,代码如下:
driver.switch_to_.rame("inden_main")
driver.switch_to_.rame("EEditor1)
driver.switch_to_.rame("eeWebEditor"
那么如果我们又想切换到上一层呢,driver.switch_to.parent_frame(),表示从当前的子iframe切换到父iframe,即上级iframe
1
2
3
4
5
6
7
8
|
driver.switch_to_.rame( "inden_main" )
driver.switch_to_.rame("EEditor1)
切换到第三层iframe
driver.switch_to_.rame("eeWebEditor)
重新切换到父iframe,即切换到第二层iframe
driver.switch_to.parent_frame()
|
总结:遇到iframe时,需要先切换到iframe框架内,再进行定位;多层嵌套的,层层切换iframe;在iframe框架内,定位主文档的元素,需切回到主文档再定位