WebDriver和DevTool协议有什么区别

Erx*_*xin 5 browser selenium webdriver google-chrome-devtools selenium-webdriver

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

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

提前致谢!

参考:

par*_*par 10

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

而 Chrome 驱动内部使用 DevTools 协议来控制浏览器,所以如果我们使用 WebDriver 协议,它将反过来使用 DevTools 协议来控制浏览器。

如果跨浏览器测试对于新的测试工具来说很重要,那么 DevTools 协议现在可能不适合,因为还没有标准,而且大部分还在进行中。否则 DevTools 协议将是一个很好的选择,因为它提供了更多的控制,如拦截请求头、模拟网络等,并使无头自动化方式更容易。


Deb*_*anB 6

网络驱动程序

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

网络驱动规范

webdriver的规格被公布的浏览器测试工具和工作组作为编辑的草稿。编辑草稿并不意味着 W3C 成员的认可,并且可能随时被其他文档更新、替换或废弃。

开发者工具协议

开发工具协议所使用的各种浏览器JavaScript引擎调试工具来:

  • 使用一组适用于各种目标的诊断工具帮助 Web 开发人员。
  • 融合对特定于目标的devtools 协议适配器的需求,并简化工具用户和工具开发人员的体验。
  • 提供一个供应商中立的平台,以促进不同协议实现和感兴趣的客户之间的协作和相互共识的建立。
  • 减少根据用户故事构建任何进一步兼容的协议实现所需的工程投资。

一些具有内置调试协议的浏览器引擎浏览器是:

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

在这里您可以找到适配器列表 RemoteDebug - Protocol Adaptors


1.注意DevTools Protocol火狐正在进行的工作

2.注意DevTools Protocol边缘正在进行的工作