上週,我們與 BrowserStack 共同宣布 WebDriver BiDi 可在 BrowserStack 中直接使用。 本週 WebDriver BiDi 今年夏天將與 Firefox 129 和 Puppeteer 23 各自支援 WebDriver BiDi!
過去 4 年來,Mozilla 一直是 WebDriver BiDi 的強大合作者 初期協助制定新標準,然後逐步導入 電子報,並透過 Firefox WebDriver 電子報妥善記錄學習進度。
透過 WebDriver BiDi, 可在 Firefox、Puppeteer (23 版) 直接推出正式版, 透過 WebDriver BiDi,為 Firefox 提供穩定支援。方便您將作業 Firefox 提供與 Chrome 相同的精簡 API。Puppeteer 對 Chrome 的支援 開發人員工具通訊協定 (CDP) 保持不變。
Firefox、CDP 和 Puppeteer
Puppeteer 是可靠的工具,可讓開發人員透過 Chrome 實現以 Chromium 為基礎的瀏覽器自動化 開發人員工具通訊協定,也稱為 CDP。2019 年,Puppeteer 開始實驗支援實驗 適用於 Firefox。
為此,Mozilla 在 Firefox。這項解決方案可讓 Firefox 搭配 Puppeteer API 自動執行,不過 的注意事項:
- 顧名思義,CDP 適用於 Chrome 的開發人員工具,因此必須變更 以及開發人員工具
- CDP 並未標準化,但在分享的公開規格中,也沒有以 Firefox 要求穩定通訊的方式維護。
- 由於 Firefox 只導入一部分 CDP,Puppeteer 永遠無法 保證其完整的 API 可以在 Firefox 中正常運作,讓使用者感到困惑。
我們非常樂意與 Mozilla 共同維持這項支援服務, 但過去幾年來,我們一直很清楚這個解決方案不是一勞永逸的解決方案。以此為基礎 合作,以及其他主要瀏覽器和工具供應商, 我們共同打造了 WebDriver BiDi
團結力量大
Firefox 團隊一直熱切地努力在 Firefox 中實作 WebDriver BiDi。 同時,Puppeteer 團隊也開始擴大支援 WebDriver BiDi 支援 與 Puppeteer API 的對應指標雙方團隊的目標是 確保實際工作環境自動化用途所需的各個 API 可透過 WebDriver BiDier 的 Puppeteer 存取,確保 Chrome 和 Firefox。
![共用的團隊資訊主頁,顯示過去幾個月通過的測試數量。](https://developer.chrome.google.cn/static/blog/firefox-support-in-puppeteer-with-webdriver-bidi/image/passing-tests-over-the-last-months.jpg?hl=zh-tw)
讓 Puppeteer 使用者選擇用 Firefox 或 Chrome 執行自動化動作
方法是在啟動 Puppeteer 時指定 browser
設定鍵
執行個體。
import puppeteer from 'puppeteer';
const firefoxBrowser = await puppeteer.launch({
browser: 'firefox', // WebDriver BiDi is used by default in Firefox.
});
const page = await firefoxBrowser.newPage();
...
await firefoxBrowser.close();
const chromeBrowser = await puppeteer.launch({
browser: 'chrome',
protocol: 'webDriverBiDi', // CDP would be used by default for Chrome.
});
const page = await chromeBrowser.newPage();
...
await chromeBrowser.close();
進一步瞭解 Firefox 129 的新功能以及 Mozilla WebDriver 開發成果 BiDi 請參閱相關的 Mozilla Hacks 網誌文章。
日後對 CDP 的支援
上述程式碼片段顯示
如要讓 Chrome 自動使用
使用 WebDriver BiDi with Puppeteer 時,您必須明確將 protocol
設為
webDriverBiDi
。因為在 Chrome 中,Puppeteer 將預設為
CDP – 不破壞現有的自動化動作,同時繼續支援自動化動作
這在 Chrome 中
Firefox 已從 Firefox 129 淘汰 CDP 支援, 預計於 2024 年底移除。 如果您現有的自動化動作需要仰賴 Firefox 的 CDP 支援功能,我們極力建議您 建議您改用 WebDriver BiDi如果這個方法不可行,請與 dev-webdriver@mozilla.org。