selenium工作原理

原文链接:https://blog.csdn.net/weixin_67603503/article/details/143226557

启动浏览器和绑定端口

当你创建一个 WebDriver 实例(如 webdriver.Chrome())时,Selenium 会启动一个新的浏览器实例,并为其分配一个特定的端口。这个浏览器实例充当了一个远程服务器。

客户端与服务器的通信

客户端:你的测试脚本充当客户端,它通过 CommandExecutor 将命令发送给 WebDriver 服务器。

HTTP 请求:使用 WebDriver Wire Protocol,客户端通过 HTTP 请求与服务器通信。请求的主体使用 JSON 格式,告诉webDriver (浏览器驱动)我们希望浏览器接下来做什么事情。

WebDriver Wire Protocol

这个协议定义了一组标准的 HTTP 请求和响应格式,使得不同的 WebDriver 实现(如 ChromeDriver、GeckoDriver 等)能够一致地处理命令和返回结果。

请求包括各种操作,例如打开网页、查找元素、模拟点击等。请求格式通常包含方法(如 GET、POST)、路径和请求体。

服务器端的操作

服务器端(即浏览器驱动)接收来自客户端的请求,并将其解析为浏览器的本地命令。每个驱动程序都需要实现具体的逻辑,将通用的 WebDriver 命令转换为对应浏览器的原生调用。

例如,ChromeDriver 会使用 Chrome 浏览器的 DevTools 协议与浏览器进行通信。

返回结果

执行完命令后,浏览器驱动会将结果(如页面状态、元素属性等)封装成 JSON 格式,通过 HTTP 响应返回给客户端。

相关推荐
程序员小远4 小时前
软件测试之单元测试详解
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
XL's妃妃12 小时前
Java 基准测试工具 JMH 详细介绍
java·开发语言·测试工具
程序员三藏13 小时前
如何用Postman做接口自动化测试?
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
Wukong.Sun15 小时前
【双人对战五子棋游戏】的自动化测试框架设计
java·selenium·测试工具
程序员三藏16 小时前
Web自动化测试:数据驱动实战
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
测试199817 小时前
单元测试、系统测试、集成测试
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·集成测试
o0向阳而生0o19 小时前
114、Postman 中POST 请求的 Body 六种参数格式介绍
测试工具·postman
程序员杰哥19 小时前
快速定位bug,编写测试用例
自动化测试·软件测试·python·功能测试·测试工具·测试用例·bug