日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python获取当前窗口句柄_人生苦短,我学python之python+selenium 多窗口、句柄(handle)...

發布時間:2025/3/20 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python获取当前窗口句柄_人生苦短,我学python之python+selenium 多窗口、句柄(handle)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自

http://www.cnblogs.com/yoyoketang/p/6128611.html

前言

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

一、認識多窗口

1.打開趕集網:http://bj.ganji.com/,點擊招聘求職按鈕會發現右邊多了一個窗口標簽

2.我們用代碼去執行點擊的時候,發現界面上出現兩個窗口,如下圖這種情況就是多窗口了。

3.到這里估計有小伙伴納悶了,手工點擊是2個標簽,怎么腳本點擊就變成2個窗口了,這個在2.1里面講過,腳本執行是不加載配置的,

手工點擊是瀏覽器默認設置了新窗口打開方式為標簽,這里用鼠標按住點二個標簽,拖拽出來,也就變成2個標簽了,是一回事。

二、獲取當前窗口句柄

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

2.人為操作的話,可以通過眼睛看,識別不同的窗口點擊切換。但是腳本沒長眼睛,它不知道你要操作哪個窗口,這時候只能句柄來判斷了。

3.獲取當前頁面的句柄:driver.current_window_handle

三、獲取所有句柄

1.定位趕集網招聘求職按鈕,并點擊

2.點擊后,獲取當前所以的句柄:window_handles

四、切換句柄

網上大部分教程都是些的第一種方法,估計是互相抄吧,小編這里新增一個更簡單的方法,直接從獲取所有的句柄list里面取值。

方法一:

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

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

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

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

方法二:

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

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

1.打開新頁面后,其實只想驗證新頁面跳轉對不對,這里可以做個簡單的驗證,獲取當前頁面的title驗證

2.驗證完后切關閉新窗口

3.切回句柄到首頁

4.打印當前頁面的句柄,看是否切換到首頁了

六、參考代碼

# coding:utf-8

from selenium import webdriver

driver = webdriver.Firefox()

driver.get("http://bj.ganji.com/")

h = driver.current_window_handle

print h ?# 打印首頁句柄

driver.find_element_by_link_text("招聘求職").click()

all_h = driver.window_handles

print all_h ? ? # 打印所有的句柄

# 方法一:判斷句柄,不等于首頁就切換

# for i in all_h:?????????????????????? # 這里不建議用for循環了,很多小伙伴懵的

# ? ? if i != h:

# ? ? ? ? driver.switch_to.window(i)

# ? ? ? ? print driver.title

# 方法二:獲取list里面第二個直接切換

driver.switch_to.window(all_h[1])

print driver.title

# 關閉新窗口

driver.close()

# 切換到首頁句柄

driver.switch_to.window(h)

# 打印當前的title

print driver.title

總結

以上是生活随笔為你收集整理的python获取当前窗口句柄_人生苦短,我学python之python+selenium 多窗口、句柄(handle)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。