UI自动化测试框架:selenium webdriver原理

本文探讨selenium webdriver的工作原理,解释如何通过WebDriver协议发送HTTP请求来实现UI自动化,并展示了如何使用Postman直接与浏览器driver通信控制浏览器。内容包括WebDriver协议、Chrome DevTools Protocol (CDP)的介绍,以及通过Postman模拟自动化测试的实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我开始想要学习UI自动化测试,开始搜索相关资料时,展现在我眼前的除了经典的selenium,还有很多如puppeteer、cypress、testcafe、Airtest,我决定对提到最多的selenium、puppeteer和cypress的原理做一番研究。本文将介绍selenium webdriver的原理。

selenium webdriver的测试流程

Selenium webdriver 使用WebDriver来远程控制浏览器实例, 并模拟用户与浏览器的交互。

当我们按照入门教程,在本地环境中实现了使用selenium自动化控制浏览器,完成打开amazon首页-> 输入"自动化测试"->点击搜索得到结果的整个过程时,我们可以明确感知到三样东西:

  • selenium测试代码:Selenium测试代码是开发/测试人员使用不同的语言和相应的selenium API库完成的测试代码,具体可以查看下方以Amazon搜索商品功能为例的Python代码实现。

  • 浏览器driver:即我们在运行selenium代码前,下载的针对不同浏览器开发的chromedriver、geckodriver等。

  • 浏览器:自动化程序运行时,会打开代码中与浏览器Driver对应的浏览器,我们可以直观地看到代码的运行效果。
    在这里插入图片描述

而,WebDriver,作为selenium的核心,却并不在这三个肉眼可见的东西里。这是怎么回事呢?我们先来看看WebDriver是什么。

WebDriver

WebDriver是一个基于HTTP的协议,它提供了一系列的接口用于发现和控制 Web 文档中的 DOM 元素,几乎可以操作浏览器做任何事情。WebDriver协议的详细信息你可以在W3C WebDriver 规范中查看。

以访问亚马逊中国首页为例,代码实现为driver.get('https://www.amazon.cn/'),查看源码,可以在webdriver.py中看到get方法实际上是调用了self.execute(Command.GET, {'url': url}),而WebDriver类是继承自Remoteexecute方法的核心逻辑是response = self.command_executor.execute(driver_command, params)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值