Selenium(十六)---多窗口切换

有时候我们再操作时点击了某个连接跳转到了另外一个连接,这时候我们就要把操作对象转换到新的窗口

webdriver提供了switch_to.window()方法可以实现不同窗口的切换

*  switch_to.window()  切换窗口
* current_window_handle 获得当前窗口的句柄
* window_handles:返回所有窗口的句柄到当前会话

代码演示:
from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

# 获得当前的窗口句柄
current_handle = 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:
    driver.switch_to.window(handle)
    if driver.title == '注册百度帐号':
        print(driver.title)#查看当前窗口标题
        driver.find_element_by_name("userName").send_keys('12345')
        driver.find_element_by_name('phone').send_keys('13878910')
        time.sleep(2)
        # 关闭当前窗口
        driver.close()

# 回到搜索窗口
driver.switch_to.window(current_handle)
# 打印当前窗口
print(driver.title)

driver.quit()
 
原文地址:https://www.cnblogs.com/xxxyang/p/11938185.html