众所周知,WebDriver协议是为自动化测试目的而设计的。但是主要的浏览器也提供DevTool协议。在某些情况下,DevTool协议可以实现比WebDriver更强大的交互和操作。
我的问题是,为什么有两个不同的协议,这两个协议的主要区别是什么?是否有任何可供分享的项目开发选择经验?
提前感谢!
参考资料:
- [https://learn.microsoft.com/en-us/microsoft-edge/devtools-protocol/](https://learn.microsoft.com/en-us/microsoft-edge/devtools-protocol/)
- [https://chromedevtools.github.io/devtools-protocol/](https://chromedevtools.github.io/devtools-protocol/)
- [https://searchfox.org/mozillacentral/source/devtools/docs/backend/protocol.md](https://searchfox.org/mozillacentral/source/devtools/docs/backend/protocol.md)
- [https://www.seleniumhq.org/projects/webdriver/](https://www.seleniumhq.org/projects/webdriver/)
- [https://www.w3.org/TR/webdriver1/](https://www.w3.org/TR/webdriver1/)
- [https://learn.microsoft.com/en-us/microsoft-edge/webdriver](https://learn.microsoft.com/en-us/microsoft-edge/webdriver)
- [https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver](https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver)
- [https://sites.google.com/a/chromium.org/chromedriver/downloads](https://sites.google.com/a/chromium.org/chromedriver/downloads)
发布于 2018-11-14 06:44:38
WebDriver协议与DevTools协议的主要区别在于WebDriver协议需要一个中间层的浏览器驱动程序(如:铬驱动器),它是介于自动化脚本和浏览器支持浏览器控制之间的服务器,但在DevTools协议的情况下,自动化脚本可以直接与运行在调试模式下的浏览器进行对话,从而使无头自动化更加直观。
而Chrome驱动程序内部使用DevTools协议来控制浏览器,所以如果我们使用WebDriver协议,它将反过来使用Devtools协议来控制浏览器。
如果说跨浏览器测试对于新的测试工具来说是很重要的,那么DevTools协议现在可能并不适合,因为目前还没有标准,而且大部分工作还在进行中。否则,DevTools协议将是一个伟大的选择,因为它提供了更多的控制,如拦截请求头,模拟网络等,并使无头自动化方式更容易。
https://stackoverflow.com/questions/50939116
复制相似问题