selenium3+python-多窗口、句柄(handle)
一、獲取當前窗口句柄
? ? 1.元素有屬性,瀏覽器的窗口其實也有屬性的,只是你看不到,瀏覽器窗口的屬性用句柄(handle)來識別。
? ? 2.人為操作的話,可以通過眼睛看,識別不同的窗口點擊切換。但是腳本沒長眼睛,它不知道你要操作哪個窗口,這時候只能句柄來判斷了。
? ? 3.獲取當前頁面的句柄:driver.current_window_handle
二、獲取所有句柄
? ? 1.定位拉鉤網(wǎng)招聘產(chǎn)品經(jīng)理,并點擊
? ? 2.點擊后,獲取當前所以的句柄:window_handles
三、切換句柄
方法一:
? ? 1.循環(huán)判斷是否與首頁句柄相等
? ? 2.如果不等,說明是新頁面的句柄
? ? 3.獲取的新頁面句柄后,可以切換到新打開的頁面上
? ? 4.打印新頁面的title,看是否切換成功
方法二:
? ? 1.直接獲取all_hand這個list數(shù)據(jù)里面第二個hand的值:all_hand[1]
四、關(guān)閉新窗口,切回主頁
? ? 1.打開新頁面后,其實只想驗證新頁面跳轉(zhuǎn)對不對,這里可以做個簡單的驗證,獲取當前頁面的title驗證
? ? 2.驗證完后切關(guān)閉新窗口
? ? 3.切回句柄到首頁
? ? 4.打印當前頁面的句柄,看是否切換到首頁了
?
from selenium import webdriverdriver = webdriver.Chrome()
driver.get("https://www.lagou.com/")
#關(guān)閉切換城市
driver.find_element_by_id("cboxClose").click()
driver.implicitly_wait(10)
#獲取當前窗口的句柄
hand = driver.current_window_handle
print(hand)
#點擊產(chǎn)品經(jīng)理打開新的標簽
driver.find_element_by_link_text("產(chǎn)品經(jīng)理").click()
#獲取所有句柄
all_hand = driver.window_handles
print(all_hand)
#切換句柄
#判斷當前的句柄不等于首頁就切換
for item in all_hand:
if item != hand:
driver.switch_to_window(item)
print(driver.title)
#方法二,直接在list中切換
driver.switch_to_window(all_hand[1])
print(driver.title)
#關(guān)閉新窗口
driver.close()
#切換首頁
driver.switch_to_window(hand)
#打印當前的title
print(driver.title)
?
轉(zhuǎn)載于:https://www.cnblogs.com/Teachertao/p/10970296.html
總結(jié)
以上是生活随笔為你收集整理的selenium3+python-多窗口、句柄(handle)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: standard_init_linux.
- 下一篇: Wannafly挑战赛22