美文网首页
selenium瀏覽器自動化 8 - [技巧] handle切換

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

作者: Maliao | 来源:发表于2018-06-02 19:43 被阅读27次

    標籤頁切換

    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切換

          本文链接:https://www.haomeiwen.com/subject/xstxsftx.html