多表单切换、多窗口切换

表单切换语法:switch_to.frame():默认可以直接对表单的ID或name属性传参。switch_to_default_content():回到最外层页面。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://mail.163.com")
driver.implicitly_wait(2)
login_frame = driver.find_element_by_css_selector("iframe[id^='x-URS-iframe']")

driver.switch_to.frame(login_frame)
            
driver.find_element_by_name("email").send_keys("username")
driver.find_element_by_name("password").send_keys("password")
driver.find_element_by_id("dologin").click()

driver.switch_to_default_content()

driver.quit()

2、多窗口切换:

语法:switch_to.window():窗口切换;current_window_handle:当前窗口句柄;window_handles:所有窗口句柄

from selenium import webdriver

driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get("https://www.baidu.com")

#获得百度搜索窗口句柄
search_window = driver.current_window_handle

driver.find_element_by_link_text("登录").click()
driver.find_element_by_link_text("立即注册").click()

#获取当前所有打开窗口的句柄
all_handles = driver.window_handles

for handle in all_handles:
    if handle == search_window:
        #切换到搜索窗口句柄
        driver.switch_to.window(handle)
        print(driver.title)
        driver.close()
"""
output:百度一下,你就知道
"""
原文地址:https://www.cnblogs.com/yijierui/p/13399930.html