当前位置: 首页 > news >正文

web 自动化之 selenium+webdriver 环境搭建及原理讲解

文章目录

        • 一、web 自动化测试学习说明
        • 二、什么 web 自动化测试
        • 三、selenium 简介
        • 四、web自动化测试环境搭建
        • 五、web 自动化测试第一个脚本
        • 六、selenium 原理及源码讲解

一、web 自动化测试学习说明

进阶 web 自动化测试学习:掌握 python 编程基础

二、什么 web 自动化测试

web 端测试: 对网页的测试
UI 测试: web 测试 + app 测试
web 自动化测试:通过代码对网页进行测试
UI 测试 = web 自动化测试 + APP 自动化测试

三、selenium 简介

selenium 是企业主流应用广泛 web 自动化测试框架
selenium 的三大组件:
1、selenium IDE 浏览器插件:实现脚本录制
2、WebDriver 实现对浏览器的各种操作(API 包)
3、Grid 分布式执行,用例同时在多个浏览器同时执行,提搞测试效率

四、web自动化测试环境搭建

环境搭建步骤:
1、安装 selenium (第三方库)
cmd 命令:pip install selenium
2、安装浏览器(谷歌浏览器)
常见浏览器:chrome 浏览器、IE 浏览器、Firefox 浏览器
3、安装浏览器驱动
chrome 浏览器驱动:chromedriver.exe
IE 浏览器驱动:ieserverdriver.exe
Firefox 浏览器驱动:geckodirver.exe
特别注意事项:下载驱动版本必须与浏览器的版本一致
chrome 浏览器驱动下载地址
chromedriver.exe 文件放置到 python 安装路径(python.exe 所在的路径)

五、web 自动化测试第一个脚本

打开浏览器,加载项目地址

from selenium import webdriver# 指令1:打开浏览器
driver=webdriver.Chrome()
# 指令2:加载项目地址
driver.get("https://www.baidu.com")
# 不断发送其他指令:不同指令操控浏览器做不同的事情
六、selenium 原理及源码讲解

selenium 脚本如何操控浏览器进行对应的操作?

三者如何通信,实现 web 自动化测试:
结合 selenium 源码讲解 selenium 的原理:

  • 1、启动浏览器驱动(chromedriver.exe)服务
  • 2、selenium 脚本与浏览器驱动建立连接,再 selenium 脚本发送指令(基于 http 通信)
    (发送指令给浏览器驱动,浏览器驱动控制浏览器操作)

不同的指令对浏览器进行不同的操作
指令包(API包):JsonWireProtocol( JWP)
JsonWireProtocol ∙ SeleniumHQ/selenium Wiki ∙ GitHub

打开浏览器,执行的命令:
response = self.execute(Command.NEW_SESSION, parameters)
指定请求地址 http://ip:端口号/路径+请求方式+请求参数
response = self.command_executor.execute(driver_command, params)

相关文章:

  • 第三天 车联网云架构
  • CAS、CAS自旋、CAS自旋锁、CLH锁与Java AQS:深入理解并发编程核心机制
  • stable diffusion的attention-map:提取和可视化跨注意力图
  • DRAM详解
  • 【Electron】electron-vue 借助 element-ui UI 库助力桌面应用开发
  • MIST:一键解锁 macOS 历史版本,旧系统安装不再难!
  • 学习黑客 MAC 地址深入了解
  • 问题 | 低空经济未来发展前景机遇及挑战
  • C++ 工具链与开发实践:构建安全、高效与创新的开发生态
  • 探索大语言模型(LLM):词袋法(Bag of Words)原理与实现
  • 【愚公系列】《Manus极简入门》026-市场分析专家:“市场洞察家”
  • 【JavaScript】二十九、垃圾回收 + 闭包 + 变量提升
  • Python实例题:Python获取喜马拉雅音频
  • laravel 使用异步队列,context带的上下文造成反序列化出问题
  • day05_java中常见的运算符
  • python学生作业提交管理系统-在线作业提交系统
  • Hutool的`BeanUtil.toBean`方法详解
  • 自定义Widget开发:自定义布局实现
  • Spring Boot Controller 如何处理HTTP请求体
  • 力扣刷题Day 42:缺失的第一个正数(238)
  • 丹麦召见美外交官,强调“不能容忍”美在格陵兰岛间谍活动
  • 中华人民共和国和俄罗斯联邦在纪念中国人民抗日战争、苏联伟大卫国战争胜利和联合国成立80周年之际关于进一步深化中俄新时代全面战略协作伙伴关系的联合声明
  • 正荣地产:前4个月销售14.96亿元,控股股东已获委任联合清盘人
  • 北约年度报告渲染所谓“中国核威胁”,国防部回应
  • 上海优化营商环境再攻坚,企业和机构有哪些切实感受?
  • 江苏省泰州市委常委、宣传部部长刘霞接受审查调查