selenium切换iframe


在登录豆瓣中,视频中可以直接获取复选框并勾选,可是我自己测试并行。查百度发现是因为框架的原因。登录框在框架内,要先进入框架才可以操作里面的元素。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.douban.com/')
check = driver.find_element_by_id('account-form-remember')
check.click()

修改代码如下:

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://www.douban.com/')

# 登录的页面在框架内,要先切换框架才能操作
driver.switch_to.frame(0)
check = driver.find_element_by_id('account-form-remember')
check.click()

关于driver.switch_to.frame(0),我们可以转到声明中查看用法

可以使用id,name或index和WebElement来定位。

在框架中要回到主文档中,需要用到

driver.switch_to.default_content()回到主文档

driver.switch_to.parent_frame()可以回到父文档,父框架

 

相关