selenium对iframe的操作有三种,分别是id,name,元素定位。
id
<html>
<iframe id="frame1" src="https://www.sogou.com/" name="slider"></iframe>
</html>
如图上所示,iframe标签里有id的话直接用id定位即可
driver.switch_to.frame("frame1")
name
<html>
<iframe id="frame1" src="https://www.sogou.com/" name="slider"></iframe>
</html>
如图上所示,iframe标签里有name的话直接用id定位即可
driver.switch_to.frame(“slider”)#切换到name为login_frame_qq的iframe中
元素定位
<iframe tab-id="12c8792" frameborder="0" src="xx/xx/xxx.html" scrolling="yes" class="x-iframe" cd_frame_id_="d5234f1"></iframe>
页面找到class值为'.x-iframe'第二个iframe页面
iframe = drvier.find_elements(By.CSS_SELECTOR, '.x-iframe')[1]
drvier.switch_to.frame(iframe)
多个iframe嵌套
<html>
<iframe id="frame1">
<iframe id="frame2" / >
</iframe>
</html>
一层层跳进去
driver.switch_to.frame("frame1")
driver.switch_to.frame("frame2")
跳出iframe
# 1.跳转到iframe后,返回到主窗体
drvier.switchTo().defaultContent()
# 2.存在多个iframe,跳转到二级iframe后,返回上一级的iframe:
drvier.switchTo().parentFrame()
网友评论