
- WebdriverIO 教程
- WebdriverIO - 首頁
- WebdriverIO - 簡介
- WebdriverIO - 預備知識
- WebdriverIO - 架構
- WebdriverIO - NodeJS 入門
- WebdriverIO - NPM 安裝
- WebdriverIO - VS Code 安裝
- WebdriverIO - package.json
- WebdriverIO - Mocha 安裝
- Selenium 獨立伺服器安裝
- WebdriverIO - 配置檔案生成
- WebdriverIO - VS Code 智慧提示
- WebdriverIO - wdio.conf.js 檔案
- WebdriverIO - XPath 定位器
- WebdriverIO - CSS 定位器
- WebdriverIO - 連結文字定位器
- WebdriverIO - ID 定位器
- WebdriverIO - 標籤名定位器
- WebdriverIO - 類名定位器
- WebdriverIO - 名稱定位器
- 斷言的 Expect 語句
- WebdriverIO - 正常流程
- WebdriverIO - 常用瀏覽器命令
- WebdriverIO - 處理瀏覽器大小
- WebdriverIO - 瀏覽器導航命令
- 處理複選框和下拉選單
- WebdriverIO - 滑鼠操作
- 處理子視窗/彈出視窗
- WebdriverIO - 隱藏元素
- WebdriverIO - 框架
- WebdriverIO - 拖放
- WebdriverIO - 雙擊
- WebdriverIO - Cookie
- WebdriverIO - 處理單選按鈕
- Web元素上的 Chai 斷言
- WebdriverIO - 多個視窗/標籤頁
- WebdriverIO - 滾動操作
- WebdriverIO - 警報
- WebdriverIO - 除錯程式碼
- WebdriverIO - 捕獲螢幕截圖
- WebdriverIO - JavaScript 執行器
- WebdriverIO - 等待
- WebdriverIO - 並行執行測試
- WebdriverIO - 資料驅動測試
- 從命令列引數執行測試
- 使用 Mocha 選項執行測試
- 從 Allure 生成 HTML 報告
- WebdriverIO 有用資源
- WebdriverIO - 快速指南
- WebdriverIO - 有用資源
- WebdriverIO - 討論
WebdriverIO - 處理子視窗/彈出視窗
點選連結或按鈕可能會開啟一個新的子視窗。WebdriverIO 預設情況下控制主瀏覽器視窗,為了訪問子視窗中的元素,必須將 WebdriverIO 的控制權從主頁面切換到子視窗。
子視窗的方法
一些處理子視窗的方法如下:
browser.getWindowHandles()
此方法以列表的形式返回所有當前開啟的瀏覽器視窗的視窗控制代碼 ID。如果打開了兩個視窗,列表的零索引包含父視窗的控制代碼 ID,第一個索引指向子視窗的視窗控制代碼。
語法
語法如下:
var x = browser.getWindowHandles()
browser.getWindowHandle()
此方法返回當前聚焦的瀏覽器視窗的視窗控制代碼 ID。
語法
語法如下:
let l = browser.getWindowHandle()
browser.switchToWindow('<window handle id>')
此方法用於將焦點從一個瀏覽器視窗切換到另一個開啟的視窗,其視窗控制代碼 ID 作為引數傳遞給此方法。
語法
語法如下:
browser.switchToWindow(x)
在下圖中,點選“使用 Apple 帳戶登入”按鈕後,會開啟一個子視窗,其瀏覽器標題為“使用 Apple ID 登入”。讓我們嘗試切換到子視窗並訪問其中的元素。

首先,請按照標題為“使用 WebdriverIO 的正常流程”一章中的步驟 1 到 5 進行操作,步驟如下:
步驟 1 - 安裝 NodeJS。有關如何執行此安裝的詳細資訊,請參閱標題為“NodeJS 入門”一章。
步驟 2 - 安裝 NPM。有關如何執行此安裝的詳細資訊,請參閱標題為“NPM 安裝”一章。
步驟 3 - 安裝 VS Code。有關如何執行此安裝的詳細資訊,請參閱標題為“VS Code 安裝”一章。
步驟 4 - 建立配置檔案。有關如何執行此安裝的詳細資訊,請參閱標題為“配置檔案生成”一章。
步驟 5 - 建立規範檔案。有關如何執行此安裝的詳細資訊,請參閱標題為“Mocha 安裝”一章。
步驟 6 - 將以下程式碼新增到建立的 Mocha 規範檔案中。
// test suite name describe('Tutorialspoint application', function(){ //test case it('Child Window', function(){ // launch url browser.url('https://secure.indeed.com/account/login') //identify element then click $('#apple-signin-button').click() //get all window handle ids in list var l = browser.getWindowHandles() //switch to child window browser.switchToWindow(l[1]) //get page title of child window console.log(browser.getTitle() + ' - Page title of child window') //close child window browser.closeWindow() //switch to parent window browser.switchToWindow(l[0]) //get page title of parent window console.log(browser.getTitle() + ' - Page title of parent window') }); });
使用以下命令執行配置檔案 - wdio.conf.js 檔案:
npx wdio run wdio.conf.js
有關如何建立配置檔案的詳細資訊,請參閱標題為“wdio.conf.js 檔案”和“配置檔案生成”的章節。
您的計算機上將顯示以下螢幕:

成功執行命令後,首先會在控制檯中列印子視窗的頁面標題 - “使用 Apple ID 登入”,然後列印父視窗的頁面標題 - “登入 | Indeed 帳戶”。