selenium之内嵌网页iframe切换

IFRAME是HTML标签,作用是文档中的文档,或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架(即行内框架)       -来自百度百科

iframe,又叫浮动帧标记,是内嵌的网页元素,可以将一个html文件嵌入到另一个html文件中显示

一般这种网页元素我们需要进行切入之后才能定位到具体的元素,如何做呢?下面代码是一种方法,并不能执行。

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.implicitly_wait(5)  # 隐式等待
driver.get("http://www.xxx.com") #打开网页
"""
对iframe进行操作,需要用到以下三种方法:
switch_to_iframe()                       切换到iframe上(未来会被删除,不建议使用)
switch_to.frame()                        切换到iframe上
switch_to.default_content()              切换回原主页面
"""
iframe = driver.find_element_by_id("f91fsd")  #定位到内嵌的iframe网页
driver.switch_to.frame(iframe)   #切入到iframe
driver.find_element_by_id("sw").send_keys("test") #然后对元素进行操作
driver.switch_to.default_content()   #回到主页面,这一步一定要记得,有很多初学者会忘记写这一步导致无法定位到原页面元素
time.sleep(5)
driver.quit()

看完代码相信你对iframe有一个大概的了解,其实你把里面的iframe当做你的卧室,原来的主页面当做客厅,你从客厅需要进入到卧室,必须打开卧室的门,这一步骤就是切入

这时候你又想去客厅去拿杯子,就需要从卧室出去,出去这一步骤就是切出(回到主页面)。这样说的话是不是容易理解了。

原文地址:https://www.cnblogs.com/king2/p/13657805.html