設定類型
WebdriverIO 可以用於各種用途。它實作了 WebDriver 協定 API,並可以自動化方式執行瀏覽器。此框架的設計旨在於任何任意環境和任何種類的任務中運作。它獨立於任何第三方框架,僅需 Node.js 即可執行。
協定繫結
對於與 WebDriver 和其他自動化協定的基本互動,WebdriverIO 使用其自身基於 webdriver
NPM 套件的協定繫結。
- WebDriver
- Chrome DevTools
loading...
loading...
所有協定命令都會回傳來自自動化驅動程式的原始回應。該套件非常輕巧,且**沒有**任何類似自動等待的智慧邏輯來簡化與協定的互動。
套用至實例的協定命令取決於驅動程式的初始工作階段回應。例如,如果回應表示已啟動行動工作階段,則該套件會將所有 Appium 和行動 JSON 線路協定命令套用至實例原型。
當匯入 devtools
NPM 套件時,您可以使用 Chrome DevTools 協定執行同一組命令(行動命令除外)。它具有與 webdriver
套件相同的介面,但其自動化是基於 Puppeteer 執行。
如需有關這些套件介面的詳細資訊,請參閱模組 API。
獨立模式
為了簡化與 WebDriver 協定的互動,webdriverio
套件在協定之上實作了各種命令(例如dragAndDrop
命令)和核心概念,例如智慧型選取器或自動等待。上述範例可以簡化如下:
loading...
在獨立模式中使用 WebdriverIO 仍然允許您存取所有協定命令,但提供了一組額外的超集命令,可提供更高層次的瀏覽器互動。它允許您將此自動化工具整合到您自己的(測試)專案中,以建立新的自動化程式庫。熱門範例包括Spectron或CodeceptJS。您也可以撰寫純 Node 腳本來從網路擷取內容(或任何其他需要執行瀏覽器的操作)。
如果未設定任何特定選項,WebdriverIO 將永遠嘗試下載並設定符合您功能中 browserName
屬性的瀏覽器驅動程式。對於 Chrome 和 Firefox,它也可能會安裝它們,具體取決於它是否可以在機器上找到對應的瀏覽器。
如需有關 webdriverio
套件介面的詳細資訊,請參閱模組 API。
WDIO 測試執行器
儘管如此,WebdriverIO 的主要目的是大規模的端對端測試。因此,我們實作了一個測試執行器,可協助您建置易於讀取和維護的可靠測試套件。
測試執行器會處理許多使用純自動化程式庫時常見的問題。首先,它會組織您的測試執行並分割測試規範,以便您的測試可以以最大並行性執行。它還會處理工作階段管理,並提供許多功能來協助您偵錯問題並在測試中尋找錯誤。
以下是上述相同的範例,它被寫成測試規範並由 WDIO 執行:
loading...
測試執行器是 Mocha、Jasmine 或 Cucumber 等熱門測試框架的抽象。若要使用 WDIO 測試執行器執行您的測試,請查看開始使用章節以取得更多資訊。
如需有關 @wdio/cli
測試執行器套件介面的詳細資訊,請參閱模組 API。