iframe也称作嵌入式框架,嵌入式框架和框架网页类似,它可以把一个网页的框架和内容嵌入在现有的网页中。在selenium进行定位时,如果需要定位某个iframe内的元素,需要先切换到该iframe下
以上是进入页面的代码
方法一:使用iframe的name属性,要使用的iframe的name属性为‘login_frame_qq’
driver.switch_to.frame("login_frame_qq")
方法二:先找到这个iframe,再切换到它
driver.switch_to.frame(driver.find_element_by_name("login_frame_qq"))
方法三:通过下标定位到该iframe
#比如顶层页面下内嵌了5个iframe,我们要切换到的iframe是第5个,可以这样写
driver.switch_to.frame(4)
还有一种方法,是在等待元素出现的时候,直接切换到该iframe
WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it("login_frame_qq")) #‘login_frame_qq’是iframe的name属性
切换之后去点击该iframe下的元素
driver.find_element_by_id("switcher_plogin").click()
退出iframe的方法 - 回到了最外层的html页面
driver.switch_to.default_content()