WebDriver和DevTool协议有什么区别

时间:2018-06-20 01:55:19

标签: selenium selenium-webdriver browser webdriver google-chrome-devtools

众所周知,WebDriver协议是为自动化测试目的而设计的。但是主要的浏览器也提供DevTool协议。在某些情况下,与WebDriver相比,DevTool协议可以实现更强大的交互和操作。

我的问题是为什么会有两种不同的协议,这两种协议之间的主要区别是什么?有没有可供选择的项目开发经验可供分享?

谢谢!

参考:

2 个答案:

答案 0 :(得分:2)

WebDriver协议和DevTools协议之间的主要区别在于WebDriver协议需要像浏览器驱动程序(例如:chrome-driver)这样的中间人,该中间人位于自动化脚本和启用浏览器控制的浏览器之间的服务器,但是在使用DevTools协议的情况下,自动化脚本可以直接与以调试模式运行的浏览器对话,从而使无头自动化变得非常简单。

Chrome驱动程序内部使用DevTools协议控制浏览器,因此,如果我们使用WebDriver协议,它将依次使用Devtools协议控制浏览器。

如果跨浏览器测试对于新的测试工具而言很重要,则DevTools协议可能现在不适用,因为目前尚无标准,并且大部分正在进行中。否则,DevTools协议将是一个不错的选择,因为它提供了更多的控制功能,例如拦截请求标头,模拟网络等,并简化了无头自动化方式。

答案 1 :(得分:1)

WebDriver

WebDriver为我们提供了精心设计的面向对象的API,可以为通过动态网页创建的现代高级Web应用程序提供更好的支持。简而言之,WebDriver是使我们能够自省和控制用户代理的远程控制界面。它为我们提供了平台和语言中立的有线协议,以及一种进程外程序可以远程指示 Web浏览器行为的方式。

WebDriver规范

WebDriver SpecificationBrowser Testing and Tools Working Group发布为编辑草稿。编辑草稿并不意味着得到W3C成员的认可,并且可以随时被其他文档更新,替换或淘汰。

DevTools协议

Developer Tools Protocol被各种浏览器 JavaScript引擎调试工具用来:

  • 使用一组可在各种目标上良好运行的诊断工具来帮助Web开发人员。
  • 为了满足对特定于目标的 devtools协议适配器的需求,并简化工具用户和工具开发人员的使用体验。
  • 提供与供应商无关的平台,以促进不同协议实现与感兴趣的客户之间的协作和相互共识的建立。
  • 减少根据用户案例构建任何进一步兼容协议实现所需的工程投资。

一些具有内置调试协议的 Browser Engines Browsers 是:

一些公开通用协议的适配器:

在这里您可以在RemoteDebug - Protocol Adaptors

中找到适配器列表。

1。请注意, Firefox DevTools Protocol正在进行的工作

2。请注意, Edge DevTools Protocol正在进行的工作