当前位置: 首页 > 面试题库 >

WebDriver和DevTool协议有什么区别

华星文
2023-03-14
问题内容

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

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

提前致谢!

参考:

  • 开发工具

    • https://docs.microsoft.com/zh-cn/microsoft-edge/devtools-protocol/
    • https://chromedevtools.github.io/devtools-protocol/
    • https://searchfox.org/mozillacentral/source/devtools/docs/backend/protocol.md
    • WebDriver:

    • https://www.seleniumhq.org/projects/webdriver/

    • https://www.w3.org/TR/webdriver1/
    • https://docs.microsoft.com/zh-cn/microsoft-edge/webdriver
    • https://developer.mozilla.org/zh-CN/docs/Mozilla/QA/Marionette/WebDriver
    • https://sites.google.com/a/chromium.org/chromedriver/downloads

问题答案:

网络驱动器

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

WebDriver规范

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

DevTools协议

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

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

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

  • Chrome DevTools
  • WebKit / Safari
  • Node.js
  • Firefox 1(正在开发中)
  • Edge 2([正在开发中](链接将很快更新))

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

  • Microsoft Edge诊断适配器 -将由本机支持(上述)替换。
  • RemoteDebug iOS WebKit适配器

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

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

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



 类似资料:
  • 两者都是序列化库,由谷歌开发人员开发。他们之间有什么大的区别吗?将使用协议缓冲区的代码转换为使用FlatBuffers需要大量工作吗?

  • WebSocket和STOMP协议的主要区别是什么?

  • 本文向大家介绍HTTP协议中的GET和POST方法之间有什么区别?,包括了HTTP协议中的GET和POST方法之间有什么区别?的使用技巧和注意事项,需要的朋友参考一下 GET方法 GET方法发送附加到页面请求的已编码用户信息。页面和编码信息由?分隔。字符如下- GET方法是将信息从浏览器传递到Web服务器的默认方法,它会生成一个长字符串,该字符串出现在浏览器的Location:box中。建议最好不

  • 问题内容: Selenium中的WebDriver和WebElement有什么区别? 样例代码: 问题答案: WebDriver界面 从Selenium的角度看,硒中的ChromeDriver和WebDriver有什么区别? 界面 就像是该第三方一个协议类似 浏览器厂商 喜欢 Mozilla的 , Chrome浏览器 , Internet浏览器 , Safari浏览器 等必须坚持和贯彻的一样。反过

  • 问题内容: 如果我们创建: chrome驱动程序方法将被执行。 如果我们创建: 再次执行方法(按方法覆盖)。 那为什么只在执行时才写后一个呢? 问题答案: ChromeDriver驱动程序=新的C​​hromeDriver(); 如果您使用将通过其创建的 ChromeDriver 实例,则我们将只能调用和执行由 ChromeDriver 实现且仅受 Chrome浏览器 支持的方法。要与其他浏览器配

  • 如果我们创建: 将执行chrome驱动程序方法。 那么为什么我们只在执行的时候才写后面的一个呢?