selenium瀏覽器自動化 8 - [技巧] handle切換

標籤頁切換

image

在selenium中每個標籤頁都有一個handle,若不切換handle,定位到的元素只會找到當前頁面。

這邊,以中國銀行點擊功能為例,會自動開啟新分頁。

創建selenium對象

from selenium import webdriver
browser = webdriver.Chrome()

訪問中國銀行,開啟功能分頁

browser.get("http://www.boc.cn/")

links = browser.find_elements_by_xpath(".//*[@class='index_lg']//a")

for i in links:
    i.click()

print(browser.title)

查看目前所有分頁的handle,而handle每次生成都會是不一樣的。

handles = browser.window_handles

輸出:
['CDwindow-e10a2580-b8af-471c-a645-9265207ff5e6',
 'CDwindow-21cd97f5-9e7f-436e-9de1-dfdb4bd38a14',
 'CDwindow-95f59ba3-cbff-424f-a739-9fd170b936ae',
 'CDwindow-fee5a3db-f3b2-4606-aefa-cbd42ebf3b30',
 'CDwindow-c2977923-b62a-4fbf-a4d3-51ec90f3cdd8']

遍歷所有handle

for h in handles:
    browser.switch_to_window(h) # 切換handle
    print("當前 handle: ", browser.current_window_handle)
    print("當前 title: ", browser.title)

輸出:
handle:  CDwindow-e10a2580-b8af-471c-a645-9265207ff5e6
title:  中国银行全球门户网站
handle:  CDwindow-21cd97f5-9e7f-436e-9de1-dfdb4bd38a14
title:  海外及港澳台地区客户网银登录
handle:  CDwindow-95f59ba3-cbff-424f-a739-9fd170b936ae
title:  登录
handle:  CDwindow-fee5a3db-f3b2-4606-aefa-cbd42ebf3b30
title:  中国银行
handle:  CDwindow-c2977923-b62a-4fbf-a4d3-51ec90f3cdd8
title:  中国银行

你可能感兴趣的:(selenium瀏覽器自動化 8 - [技巧] handle切換)