众所周知,WebDriver协议是为自动化测试目的而设计的。但是主要的浏览器也提供DevTool协议。在某些情况下,与WebDriver相比,DevTool协议可以实现更强大的交互和操作。
我的问题是为什么会有两种不同的协议,这两种协议之间的主要区别是什么?有没有可供选择的项目开发经验可供分享?
谢谢!
参考:
DevTools
WebDriver:
答案 0 :(得分:2)
WebDriver协议和DevTools协议之间的主要区别在于WebDriver协议需要像浏览器驱动程序(例如:chrome-driver)这样的中间人,该中间人位于自动化脚本和启用浏览器控制的浏览器之间的服务器,但是在使用DevTools协议的情况下,自动化脚本可以直接与以调试模式运行的浏览器对话,从而使无头自动化变得非常简单。
Chrome驱动程序内部使用DevTools协议控制浏览器,因此,如果我们使用WebDriver协议,它将依次使用Devtools协议控制浏览器。
如果跨浏览器测试对于新的测试工具而言很重要,则DevTools协议可能现在不适用,因为目前尚无标准,并且大部分正在进行中。否则,DevTools协议将是一个不错的选择,因为它提供了更多的控制功能,例如拦截请求标头,模拟网络等,并简化了无头自动化方式。
答案 1 :(得分:1)
WebDriver为我们提供了精心设计的面向对象的API,可以为通过动态网页创建的现代高级Web应用程序提供更好的支持。简而言之,WebDriver是使我们能够自省和控制用户代理的远程控制界面。它为我们提供了平台和语言中立的有线协议,以及一种进程外程序可以远程指示 Web浏览器行为的方式。
WebDriver Specification由Browser Testing and Tools Working Group发布为编辑草稿。编辑草稿并不意味着得到W3C成员的认可,并且可以随时被其他文档更新,替换或淘汰。
Developer Tools Protocol被各种浏览器, JavaScript引擎和调试工具用来:
一些具有内置调试协议的 Browser Engines 和 Browsers 是:
一些公开通用协议的适配器:
在这里您可以在RemoteDebug - Protocol Adaptors
1。请注意, Firefox 的DevTools Protocol
是正在进行的工作
2。请注意, Edge 的DevTools Protocol
是正在进行的工作