selenium學習 8 handle的切換

2022-06-24 20:21:10 字數 1618 閱讀 8023

在我們進行測試的過程中,經常會遇到點開超連結開啟另乙個新視窗的情況,即 target="_blank",這種情況下,如果要在新視窗進行操作,需要將焦點移到新視窗上,本文將介紹這種情況的處理

切換視窗的方法:

1

.獲取當前頁面視窗的控制代碼

current_window_handle

2.獲取所有頁面視窗的控制代碼

window_handles

3.切換控制代碼

switch_to_window(window_name)

實驗過程:

實驗**:

from selenium import

webdriver

import

time

if__name__ == '

__main__':

driver =webdriver.chrome()

driver.maximize_window()

driver.get(

"")driver.find_element_by_link_text("新聞

").click()

#獲取當前視窗控制代碼

current_handle =driver.current_window_handle

#獲取所有控制代碼

handles =driver.window_handles

#遍歷控制代碼,並切換到控制代碼

for handle in

handles:

if handle !=current_handle:

driver.switch_to.window(handle)

time.sleep(3)

print(driver.title)

還有一種方式,可以根據目標頁面的title或者url進行切換,以下以title為例

from selenium import

webdriver

import

time

if__name__ == '

__main__':

driver =webdriver.chrome()

driver.maximize_window()

driver.get(

"")driver.find_element_by_link_text("新聞

").click()

#獲取當前視窗控制代碼

current_handle =driver.current_window_handle

#獲取所有控制代碼

handles =driver.window_handles

#先切換到每乙個handle上,獲取頁面的title,如果title和目標一致,則停下來

for handle in

handles:

driver.switch_to.window(handle)

title =driver.title

if"" ==title:

break

print(driver.title)

總結:核心內容還是確定好要去的具體頁面,然後切換過去。第一種方式感覺適合只新開乙個視窗的情況,比較簡單。如果有多個視窗,可以採用第二種方式。

selenium 學習筆記

目錄 安裝與配置 使用 使用時的一些經驗與問題等 1.使用 ip 2.chrome 無頭瀏覽器 3.定位不到元素時解決方法 直接pip install selenium 即可,有時候會報錯,多嘗試一下即可 使用selenium 還需要安裝配置一下瀏覽器的驅動,我使用的是chrome瀏覽器,最先chr...

selenium學習記錄

一 配置環境 二 安裝 pip install selenium 三簡單測試 from selenium import webdriver from time import sleep 1.建立chrome瀏覽器物件,這會在電腦上在開啟乙個瀏覽器視窗 browser webdriver.chrome...

selenium學習備忘

1.執行程式的時候,報錯 is not reachable by keyboard,這個密碼框總是無法輸入字串,解決辦法 el webdriverwait driver,10 until ec.visibility of element located by.id,loginpwd el.click...