前提:
在頁面操作過程中有時候點擊某個鏈接會彈出新的窗口,這就需要主機切換到新打開的窗口上。WebDriver提供了switch_to.window()方法,可以實現在不同的窗口之間切換。
內容:
以百度為例,在兩個窗口之間的切換:
from selenium import webdriver import time driver = webdriver.Chrome() driver.implicitly_wait(10) driver.get("http://www.baidu.com") # 獲得百度搜索窗口 sreach_windows = 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 != sreach_windows: driver.switch_to.window(handle) print('now register window!') driver.find_element_by_name("account").send_keys('username') driver.find_element_by_name('password').send_keys('password') time.sleep(2) driver.quit()
就是先保存當前的窗口tag,然后在保持后面打開的窗口,進行循環,去跳到想要的窗口。