首页 > 解决方案 > Selenium webdriver 进程如何与 Safari 和 Firefox 通信?

问题描述

所以我有一个关于 Selenium 的问题,特别是它在不同浏览器上的工作方式。我知道当我们谈论 Chrome 交互时,我们有 4 层(粗略地说):

第 1 层- 我们的源代码,它利用 Selenium 库为我们带来的所有功能

第 2 层- Selenium 库,基本上是向 WebDriver 进程发出 HTTP 请求并解析其响应,返回到第 1 层方便的类实例、包装器和抽象。

第 3 层- 是在主机操作系统上运行的 WebDriver 进程,通过运行在其上的 websockets 协议和 Chrome DevTools 协议与 Chrome 实例交互。

第 4 层- 是 Chrome 目标浏览器实例。

所以对我来说一切似乎都很清楚......除非我们将目标浏览器更改为 Firefox 或 Safari。我假设我们不再使用 Chrome Devtools 协议在 webdriver 进程和浏览器实例之间进行通信。

但是 webdriver 进程如何与基于 Gecko 和 WebKit 的浏览器进行通信呢?

标签: seleniumwebsocketwebkitprotocolsgecko

解决方案


推荐阅读