哪里回看《自动化测试之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 执行流程

  1. 启动浏览器:WebDriver 启动浏览器驱动并打开浏览器。

  2. 执行操作:测试脚本发送操作命令到 WebDriver,WebDriver 再通过浏览器驱动与浏览器交互,执行如点击、输入等操作。

  3. 获取反馈:浏览器执行完操作后,通过浏览器驱动将结果反馈给 WebDriver,再由 WebDriver 将其返回给测试脚本。

  4. 结束测试:执行完所有的操作后,浏览器关闭,测试结束。


0
0

Java Web自动化测试 Selenium基础到企业实际应用

转型Java自动化测试,企业用什么,你就学什么。

752 学习 · 446 问题

查看课程