以下文章來源于 Android 開發(fā)者,作者 Google 作者 /Matthias Rohmer
近期,我們與 BrowserStack 一起見證了 WebDriver BiDi 在 BrowserStack 中正式投入使用。并且 WebDriver BiDi 也繼續(xù)得到了完善,F(xiàn)irefox 129 及 Puppeteer 23 均已獲得對 WebDriver BiDi 的生產就緒 (production-ready) 支持!
四年多來,Mozilla 一直是 WebDriver BiDi 的重要合作伙伴,在初期幫助制定了新標準,然后在 Firefox 中逐步實現(xiàn),并通過 Firefox WebDriver Newsletter 清晰地記錄了他們的進展。
由于 WebDriver BiDi 現(xiàn)已在 Firefox 中正式投入使用,Puppeteer 從版本 23 開始,可通過 WebDriver BiDi 為 Firefox 提供穩(wěn)定支持。這樣,您便可使用與 Chrome 相同的簡潔 API 將 Firefox 自動化。Puppeteer 對 Chrome 開發(fā)者工具協(xié)議 (CDP) 的支持保持不變。
提示:如要進一步了解 WebDriver BiDi,請參閱 WebDriver BiDi-跨瀏覽器自動化的未來。
Firefox、CDP 和 Puppeteer
Puppeteer 是開發(fā)者使用 Chrome 開發(fā)者工具協(xié)議 (CDP) 將基于 Chromium 的瀏覽器自動化的可靠工具。2019 年,Puppeteer 獲得了對 Firefox 的實驗性支持。 為此,Mozilla 在 Firefox 中實施并維護了一個 CDP 子集。此解決方案能讓 Firefox 通過 Puppeteer API 實現(xiàn)自動化,但也有一些注意事項:
顧名思義,CDP 由 Chrome 開發(fā)者工具所調用,需要根據(jù)開發(fā)者工具的要求進行更改。
CDP 未根據(jù)共享的公共規(guī)范進行標準化,在 Firefox 中對其進行維護需要團隊間順暢的溝通和持續(xù)的努力。
由于 Firefox 只實施了 CDP 的一個子集,Puppeteer 無法保證其完整的 API 能與 Firefox 兼容,可能會給用戶造成困擾。
雖然我們很高興在過去幾年中與 Mozilla 一起維護此支持,但我們深知這并非長久之計。以此合作伙伴關系為基礎,再聯(lián)合其他主要的瀏覽器和工具供應商,我們共同構建了 WebDriver BiDi。
提示:如需進一步了解 WebDriver BiDi 的發(fā)展歷程,請參閱回顧過往: 測試自動化的演變和發(fā)展。
團隊合作成就夢想
Firefox 團隊一直致力在 Firefox 中實施 WebDriver BiDi。與此同時,Puppeteer 團隊一直在擴展對 Puppeteer API 的 WebDriver BiDi 支持。兩個團隊共同努力的目標是借助 Puppeteer 中的 WebDriver BiDi 為生產自動化用例提供所有所需的可用 API,確保這些 API 在 Chrome 和 Firefox 中均受到支持。
如此,Puppeteer 用戶便能在啟動 Puppeteer 實例時指定 browser 配置鍵值,從而選擇 Firefox 或 Chrome 來實現(xiàn)自動化。
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 支持
上述代碼段顯示了,要借助 Puppeteer 使用 WebDriver BiDi 實現(xiàn) Chrome 自動化,您需要將 protocol 明確設置為 webDriverBiDi。這是因為對于 Chrome,Puppeteer 將始終默認使用 CDP,從而防止現(xiàn)有自動化受到影響,并同時繼續(xù)支持專門針對 Chrome 功能而構建的自動化。
提示:如要進一步了解 Chrome、Firefox、CDP 和 WebDriver BiDi 支持的 Puppeteer API,請參閱 Puppeteer 文檔。
從 Firefox 129 版本開始,F(xiàn)irefox 將棄用 CDP 支持,并計劃于 2024 年底移除該支持。如果您現(xiàn)有的自動化依賴于 Firefox 中的 CDP 支持,我們強烈建議您遷移至 WebDriver BiDi。如果無法實現(xiàn),請通過 dev-webdriver@mozilla.org 與我們聯(lián)系,分享您的用例。
-
Android
+關注
關注
12文章
3915瀏覽量
127022 -
API
+關注
關注
2文章
1471瀏覽量
61741 -
Firefox
+關注
關注
0文章
97瀏覽量
13636 -
瀏覽器
+關注
關注
1文章
1008瀏覽量
35218
原文標題:正式就緒 | Firefox、Chrome 和 Puppeteer 已支持 WebDriver BiDi
文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發(fā)者】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論