哪里回看《自动化测试之selenium工具使用》
来源:2-1 【工欲善其事必先利其器】环境配置

慕慕423898
2022-12-16
为什么不直接放到这个课程里
明知道免费课程随时回下架,又要在课程里说 ”前面已经讲解了selenium工作原理“。体验不好
1回答
-
Mushishi
2024-12-31
谢谢指正。
Selenium 工作原理
Selenium 的工作原理可以分为以下几个核心步骤:
1. WebDriver 协调浏览器
Selenium 的核心组件是 WebDriver。它作为与浏览器交互的接口,负责控制浏览器的启动、执行测试脚本、模拟用户操作等。
WebDriver 不仅与浏览器进行直接通信,还与操作系统层面的浏览器驱动(如 ChromeDriver、GeckoDriver 等)配合工作,通过 HTTP 请求发送命令到浏览器。
WebDriver 的作用:它提供了一些 API,使得测试脚本能够:
打开、关闭浏览器。
查找和定位页面元素。
执行用户操作,如点击、输入文本、拖拽等。
获取浏览器的返回结果(例如,获取页面内容、检查元素状态等)。
2. 浏览器驱动(Browser Driver)
Selenium 本身并不能直接与浏览器通信,它依赖于 浏览器驱动(例如:ChromeDriver、GeckoDriver、EdgeDriver等)来桥接 WebDriver 和浏览器之间的通信。
浏览器驱动是一个本地可执行文件,充当了 WebDriver 和浏览器之间的中介。它接收 WebDriver 发出的 HTTP 请求,将其翻译成浏览器能理解的操作,并返回浏览器的响应。
WebDriver -> HTTP 请求 -> 浏览器驱动 -> 浏览器操作
浏览器驱动 -> 浏览器执行操作并返回结果 -> WebDriver 处理响应
3. 命令与响应协议
Selenium 使用 JSON Wire Protocol(目前已被 W3C WebDriver 标准替代)或者 W3C WebDriver 协议来实现客户端与浏览器驱动之间的通信。
WebDriver API:通过各种浏览器驱动程序发送标准化的 HTTP 请求,指示浏览器执行相应的操作(例如,打开页面、点击按钮、获取元素等)。
HTTP 请求与响应:WebDriver 使用 JSON 格式的 HTTP 请求将操作指令发送到浏览器驱动,而浏览器驱动根据指令与浏览器进行交互,并返回响应。
示例:
浏览器驱动请求:
POST /session/{session_id}/element
(查找元素)浏览器响应:返回 HTML 元素的定位信息或状态码。
4. 浏览器与操作系统交互
浏览器驱动程序与浏览器的交互依赖于浏览器的 本地接口。浏览器驱动通过操作系统上的浏览器接口与浏览器进行通信。
例如,
ChromeDriver
是一个可以启动和控制 Chrome 浏览器的可执行文件,它通过与操作系统的协作,发送底层指令来执行浏览器的操作。
5. 测试脚本与 WebDriver API
测试脚本通过调用 WebDriver API(例如,
find_element()
,click()
,send_keys()
)来进行操作。WebDriver API 提供了以下功能:
定位元素:通过不同的方式(ID、name、class、CSS选择器、XPath等)定位页面中的元素。
执行操作:执行用户的操作,如点击、输入、滚动、拖拽等。
获取信息:获取页面或元素的状态,如获取元素的文本、获取页面标题、获取属性等。
等待:实现显式等待、隐式等待,避免因页面加载缓慢导致脚本失败。
截图与浏览器管理:支持截图、窗口切换、页面刷新、浏览器日志记录等。
6. Selenium 执行流程
启动浏览器:WebDriver 启动浏览器驱动并打开浏览器。
执行操作:测试脚本发送操作命令到 WebDriver,WebDriver 再通过浏览器驱动与浏览器交互,执行如点击、输入等操作。
获取反馈:浏览器执行完操作后,通过浏览器驱动将结果反馈给 WebDriver,再由 WebDriver 将其返回给测试脚本。
结束测试:执行完所有的操作后,浏览器关闭,测试结束。
00
相似问题