Python Selenium 架构
Source: Dev.to
高层 Selenium 架构
Selenium 是用于自动化基于 Web 和基于移动的应用程序的工具。
对于基于 Web 的应用程序,Selenium 包含内置的驱动程序来与浏览器通信。对于移动应用程序,Selenium 需要一个额外的组件——Appium。
组件
-
语言绑定
编写自动化代码的地方。Selenium 支持 Java、Python、C# 等语言。绑定将代码转换为 WebDriver 命令,并充当用户代码与 Selenium 之间的接口。 -
浏览器驱动
将代码与浏览器连接的中间层。例如:ChromeDriver、EdgeDriver、SafariDriver 等。 -
浏览器
最终执行的地方。例如:Chrome、Edge、Safari 等。

内部 Selenium 架构

WebDriver 类
Selenium 的主要入口点。
from selenium import webdriver
driver = webdriver.Chrome()
它初始化浏览器会话并向 Remote WebDriver 发送命令。
Remote WebDriver
Selenium 的核心组件。它接收来自 WebDriver 类的命令,将其转换为 JSON,并将请求转发给相应的浏览器驱动。
浏览器引擎
处理实际的渲染,解释命令,并与 DOM 交互。
浏览器驱动
在 Selenium 与浏览器之间搭建桥梁,在浏览器内部执行指令。
Python 虚拟环境的重要性
Python 虚拟环境允许开发者独立管理项目依赖。这在同时处理多个项目且它们的库需求不同的情况下尤为有用——例如,在一个项目中使用 Selenium 4,而在另一个项目中使用 Selenium 3。