1 from selenium import webdriver
2 from selenium.webdriver.support.wait import WebDriverWait
3 from selenium.webdriver.support import expected_conditions as EC
4 from selenium.webdriver.common.by import By
5 import time
6
7 driver = webdriver.Chrome()
8 driver.get("https://ke.qq.com/")
9 driver.maximize_window()
10
11 """
12 以腾讯课堂登录为例,演示切换iframe
13 """
14 #首次登录,点击登录
15 driver.find_element_by_id("js_login").click()
16 time.sleep(1)
17 #选择QQ登录
18 driver.find_element_by_link_text("QQ登录").click()
19
20 #切换ifarme:
21 #方式一:switch_to.frame(XXX),该方法支持的入参包含:id,name,webelement。
22 #注:drive.find_element_by_xxx的返回值是webelement
23 driver.switch_to.frame("login_frame_qq")
24 #driver.switch_to.frame(driver.find_element_by_xpath("//iframe[@name='login_frame_qq']"))
25 #等待iframe存在,可见
26 time.sleep(1)
27 #点击账号密码登录
28 driver.find_element_by_id("switcher_plogin").click()
29
30 #方式二:frame_to_be_available_and_switch_to_it(XXX),该方法支持的入参包含:id,name,webelement。
31 WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it("login_frame_qq"))
32 time.sleep(1)
33
34 """-------------------------------------------"""
35 #当存在iframe嵌套时,必须逐级深入,不能跳级
36 #从当前的iframe中回到默认的页面中
37 driver.switch_to.default_content()
38
39 #返回父级的iframe
40 driver.switch_to.parent_frame()