跳至主要內容

Electron 服務

wdio-electron-service 是一個第三方套件,如需更多資訊,請參閱 GitHub | npm


用於測試 Electron 應用程式的 WebdriverIO 服務

透過廣泛的 WebdriverIO 生態系統,啟用 Electron 應用程式的跨平台 E2E 測試。

Spectron 的精神繼承者(RIP)。

功能

透過以下方式,使測試 Electron 應用程式變得更加容易:

  • 🚗 自動設定所需的 Chromedriver(適用於 Electron v26 及以上版本)
  • 📦 自動偵測您的 Electron 應用程式路徑
  • 🧩 在您的測試中存取 Electron API
  • 🕵️ 透過類似 Vitest 的 API 模擬 Electron API

安裝

您需要安裝 WebdriverIO,相關說明可以在此處找到。

快速開始

快速啟動並運作的建議方法是使用 WDIO 設定精靈

手動快速開始

若要開始而不使用設定精靈,您需要安裝服務和 @wdio/cli

npm install --dev @wdio/cli wdio-electron-service

或使用您選擇的套件管理器 - pnpm、yarn 等。

接下來,建立您的 WDIO 設定檔。如果您需要一些靈感,此儲存庫的範例目錄中有一個可運作的設定,以及WDIO 設定參考頁面

您需要將 electron 新增至您的 services 陣列,並設定 Electron 功能,例如:

wdio.conf.ts

export const config = {
// ...
services: ['electron'],
capabilities: [
{
browserName: 'electron',
},
],
// ...
};

最後,使用您的設定檔執行一些測試

這將以 WDIO 處理 Chrome 或 Firefox 等瀏覽器的方式啟動您的應用程式實例。如果您需要同時執行額外的實例,例如應用程式的多個實例或應用程式與網頁瀏覽器的不同組合,則該服務可與 WDIO(並行)多遠端配合使用。

如果您使用 Electron ForgeElectron Builder 來封裝您的應用程式,則該服務將自動嘗試尋找您封裝的 Electron 應用程式的路徑。您可以透過自訂服務功能提供二進位檔的自訂路徑,例如:

wdio.conf.ts

export const config = {
// ...
capabilities: [
{
'browserName': 'electron',
'wdio:electronServiceOptions': {
appBinaryPath: './path/to/built/electron/app.exe',
appArgs: ['foo', 'bar=baz'],
},
},
],
// ...
};

或者,您可以透過提供 main.js 腳本的路徑,將服務指向未封裝的應用程式。Electron 需要安裝在您的 node_modules 中。建議使用 Rollup、Parcel、Webpack 等捆綁器來捆綁未封裝的應用程式。

wdio.conf.ts

export const config = {
// ...
capabilities: [
{
'browserName': 'electron',
'wdio:electronServiceOptions': {
appEntryPoint: './path/to/bundled/electron/main.bundle.js',
appArgs: ['foo', 'bar=baz'],
},
},
],
// ...
};

Chromedriver 設定

如果您的應用程式使用低於 v26 的 Electron 版本,則您需要手動設定 Chromedriver

這是因為 WDIO 使用 Chrome for Testing 來下載 Chromedriver,而 Chrome for Testing 只提供 v115 或更新版本的 Chromedriver。

文件

服務設定
Chromedriver 設定
存取 Electron API
模擬 Electron API
獨立模式
開發
常見問題與偵錯

開發

如果您有興趣貢獻,請閱讀開發文件

範例整合

請查看我們的Electron 樣板專案,其中展示了如何在範例應用程式中整合 WebdriverIO。您也可以查看此儲存庫中的範例應用程式E2Es目錄。

支援

如果您在執行 WDIO 和該服務時遇到問題,您應該先查看文件中記錄的常見問題,然後在主要的 WDIO 論壇中開啟討論。

Electron 服務討論論壇的活躍程度遠低於 WDIO 論壇,但如果您遇到的問題是 Electron 專屬或在使用該服務時遇到的問題,則可以在此處開啟討論。

歡迎!我能幫您什麼?

WebdriverIO AI Copilot