在Web自動化測試過程中,有時單擊某個鏈接會彈出新的窗口,這時就需要切換到新打開的窗口中進(jìn)行操作。WebDriver 提供的switch_to.window()
方法可以實現(xiàn)在不同的窗口之間進(jìn)行切換。
主要用到的相關(guān)方法:
- current_window_handle:獲得當(dāng)前窗口句柄。
- window_handles:返回所有窗口的句柄到當(dāng)前會話。
- switch_to.window():切換到相應(yīng)的窗口
下面以百度首頁和賬號注冊頁為例,演示在兩個窗口之間的切換
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get("https://www.baidu.com")
search_windows = driver.current_window_handle
driver.find_element(By.LINK_TEXT,'登錄').click()
driver.find_element(By.LINK_TEXT,'立即注冊').click()
all_handles = driver.window_handles
for handle in all_handles:
if handle != search_windows:
driver.switch_to.window(handle)
print(driver.title)
driver.find_element(By.NAME,'userName').send_keys('userName')
driver.find_element(By.NAME,'phone').send_keys('138xxxxxxx')
time.sleep(2)
driver.close()
driver.switch_to.window(search_windows)
print(driver.title)
driver.quit()
解析:程序開始后,首先打開百度首頁,然后通過current_window_handle
獲取了當(dāng)前窗口句柄,接著打開登錄彈窗,點擊注冊按鈕從而打開新窗口;再通過window_handles
獲得當(dāng)前所有窗口句柄,接著遍歷所有窗口句柄,如果不等于百度首頁的窗口句柄,那就是注冊頁的窗口句柄,因為只打開了兩個窗口,然后再通過switch_to.window()
切換到注冊頁窗口。文章來源:http://www.zghlxwxcb.cn/news/detail-673425.html
以上就是本期文章的所有內(nèi)容,感謝觀看,如果對您有幫助請點贊關(guān)注+收藏,一鍵三連,多謝支持!文章來源地址http://www.zghlxwxcb.cn/news/detail-673425.html
到了這里,關(guān)于【Selenium自動化測試】窗口切換的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!