跳至主要內容

WebDriver Bidi 的 TypeScript 支援

·閱讀時間 3 分鐘

隨著 WebdriverIO v8 的發布,我們引入了直接與 WebDriver Bidi 協定連線的功能。這讓使用者能夠以基本的方式存取該協定的新功能,因為它的開發仍在進行中。如今,隨著每個瀏覽器版本的發布,將啟用更多功能,因此現在是 WebdriverIO 加強其整合並讓使用者更容易存取這些功能的時候了。

隨著 WebdriverIO v8.11 的發布,我們正在新增新的 WebDriver Bidi 介面,並使其具有型別安全性 🎉

WebDriver Bidi 規範的介面是透過 簡潔資料定義語言(簡稱 CDDL)定義的。它描述了哪些有效負載可以發送到驅動程式,以及預期哪些回應。過去一個月,我一直在開發一個 CDDL 剖析器,以幫助 W3C 的瀏覽器測試和工具工作組驗證規範中定義的 CDDL,並幫助 WebDriver 生態系統採用該協定。

我建立了兩個 NPM 套件,希望能為此做出貢獻

  • cddl:一個讀取 CDDL 並將其剖析為 AST 以及驗證內容的套件
  • cddl2ts:一個可讓您將 CDDL 檔案轉換為 TypeScript 介面的套件,可用於其他 TypeScript 專案

透過 WebdriverIO 儲存庫中的一些近期變更,我們現在可以透過這些套件產生一個完全型別化的 WebDriver Bidi 介面,例如:

WebDriver Bidi TypeScript Support

我們也更新了協定文件,以納入新的 Bidi 命令,以協助使用者使用 Promise 與協定互動。當瀏覽器開始支援更多 Bidi 功能時,WebdriverIO 將開始在新協定上執行更多自動化,確保您的測試使用最新和最棒的跨瀏覽器自動化標準。以下是一些即將在未來瀏覽器版本中推出的功能

  • 新增預先載入指令碼:這將是一個非常有價值的命令,可協助 WebdriverIO 模擬 Web API 並注入指令碼以進行內省
  • 網路攔截:這將使 WebdriverIO 的網路請求模擬 API 與跨瀏覽器相容
  • HTTP 驗證:啟用載入受使用者憑證保護的網頁的功能

請注意,即使 WebdriverIO 將提供最新的 WebDriver Bidi 功能,這並不表示這些功能已在瀏覽器中實作和發布。每個瀏覽器廠商都有不同的優先順序和可用資源來新增這些新功能,雖然團隊取得了很大的進展,但仍需要更多時間才能讓協定中指定的所有內容都出現在穩定的瀏覽器版本中。不過,您可以確保 WebdriverIO 將始終為您提供一個型別化的介面,以便您在準備就緒時使用它們。

此外,我正在擬定一份提案,以擴展 WebdriverIO 介面,並在已知的 browserelementmock 物件旁邊包含一個 page 物件,以簡化存取與特定瀏覽情境相關的命令和事件。很快就會有相關資訊!

最後,我要感謝 Mozilla 和 Google 瀏覽器團隊的卓越合作和努力,發布這項新標準,讓世界各地的開發人員能夠在未來發布高品質的 Web 應用程式。

歡迎!有什麼我可以幫您?

WebdriverIO AI Copilot