selenium - 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 的浏览器进行通信呢?
解决方案
推荐阅读
- reactjs - 如何重定向到同一类组件中的 Switch Route?
- javascript - ECMAScript 中的 UTF-32 解码
- excel - 单击表格单元格时如何调用 MailItem.Display 方法?
- ios - 带有 Timer.scheduledTimer 的 EXC_BAD_ACCESS
- python - 使用 matplotlib 在 qiskit 中可视化电路
- nlp - 在 Dialogflow 中连接实体
- html - 从下拉选择和按钮单击重定向到页面
- python - 如何在异常超时后重试并从字典中删除?
- javascript - 如果值未定义并且在新对象上使用“in”运算符,则 JS 对象解构/重组是不安全的。如何解决这个问题?
- python - 将一个列表的每个索引与同一列表的每个其他索引进行比较的最佳方法