selenium之視窗切換

2021-08-21 03:29:21 字數 2016 閱讀 9399

1.何時需要切換視窗呢?

(1) 標籤內部存在iframe,普通的方式無法直接定位到iframe內部的標籤元素。需要切換;

(2) 乙個瀏覽器物件,存在多個標籤選項卡。需要切換。

2.iframe標籤舉例(qq郵箱登入)

from selenium import webdriver

from selenium.webdriver.support.wait import webdriverwait

import time

driver = webdriver.firefox()

driver.get('')

#driver.switch_to.frame()切換到iframe標籤

driver.switch_to.frame(driver.find_element_by_id('login_frame'))

driver.find_element_by_id('switcher_plogin').click()

username = webdriverwait(driver, 10).until(lambda driver: driver.find_element_by_id('u'))

username.clear()

username.send_keys('qq號')

password = webdriverwait(driver, 10).until(lambda driver: driver.find_element_by_id('p'))

password.clear()

password.send_keys('密碼')

driver.find_element_by_id('login_button').click()

time.sleep(3)

driver.close()

import time

from selenium import webdriver

# 注意:出現無法定位此元素時,可能是要切換視窗,也可能是它更新較快,標籤或屬性已經發生了變化

driver = webdriver.firefox()

driver.get('')

driver.find_element_by_link_text('新聞').click()

# driver.current_window_handle()獲取當前視窗操作控制代碼

# driver.title獲取當前視窗標籤選項卡名稱

current_window = driver.current_window_handle

print(current_window, driver.title)

driver.find_element_by_css_selector('strong a').click()

current_window = driver.current_window_handle

print(current_window,driver.title)

# 獲取所有視窗操作控制代碼

windows = driver.window_handles

print(windows, driver.title)

for win in windows:

if current_window != win:

# 切換視窗

driver.switch_to.window(win)

current_window = driver.current_window_handle

print(current_window, driver.title)

time.sleep(6)

title =driver.find_element_by_css_selector('.header .title').text

print(title)

driver.close()

selenium 切換視窗

參考原文 瀏覽器支援多視窗開啟,但是開啟乙個新的視窗後,selenium不會自動跳轉至新的視窗,需要自己切換 1.driver.window handles 獲取當前瀏覽器的所有視窗,此時windows 為乙個陣列,windows 視窗1,視窗2,視窗3.切換為最新開啟的視窗 driver.swit...

selenium視窗切換

coding utf 8 author wang 1.在同乙個標籤選項卡上開啟不同的頁面,相當於是使用同乙個window視窗開啟不同的頁面,window物件沒有變 2.不同選項卡開啟不通的頁面,window物件會發生改變,此時注意切換window物件否則無法 定位新的頁面中的元素 import ti...

selenium多視窗切換

在編寫自動化用例時,偶爾會有兩個以上的開啟視窗,那麼就來看看下面的多視窗切換吧!多視窗切換 now handle driver.current window handle 獲取當前視窗控制代碼 all handle driver.window handles 獲取所有視窗控制代碼 for handl...