python UI自動化之處理多窗口


前言

有些頁面的鏈接打開后,會重新打開一個窗口,想要在新頁面上操作,就需要先切換窗口了。獲取窗口的唯一標識用句柄表示,所以只需要切換句柄,我們就能在多個頁面上靈活自如的操作了。

1、元素有屬性,瀏覽器的窗口其實也有屬性的,只是你看不到,瀏覽器窗口的屬性用句柄(handle)來識別

獲取當前窗口的句柄

driver.current_window_handle 

獲取所有窗口的句柄

driver.window_handles

2、切換句柄

方法一:

    1.循環判斷是否與首頁句柄相等

    2.如果不等,說明是新頁面的句柄

    3.獲取的新頁面句柄后,可以切換到新打開的頁面上

    4.打印新頁面的title,看是否切換成功

for  i in all_h:
    if i != h:
        driver.switch_to.window(i)
        print driver.title

方法二:

    1.直接獲取all_h這個list數據里面第二個hand的值:all_h[1]

driver.switch_to.window(all_h[1])

3、關閉新窗口,切回主頁

driver.close()
driver.switch_to.window(h)

 

另js也可以處理多窗口

(1)、比如登錄百度后,點擊百度的網頁鏈接會打開一個新的窗口 (只有登錄的才會打開新的窗口,不登錄是不會的) 

 

 

 (2)、查看元素屬性:target="_blank"

(3)、去掉target="_blank"屬性

1.因為此鏈接元素target="_blank",所以打開鏈接的時候會重新打開一個標簽頁,那么解決這個問題,去掉該屬性就可以了。

2.為了驗證這個問題,可以切換到html編輯界面,手動去掉“_blank”屬性

3.刪除“_blank”屬性后,重新打開鏈接,這時候會發現打開的新鏈接會在原標簽頁打開

(4)、js去掉target屬性

js = 'document.getElementById("id").target="";'
driver.execute_script(js)

注意:並不是所有的鏈接都適用於本方法,本篇只適用於有這個target="_blank"屬性鏈接情況   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM