软件测试学习笔记丨Selenium Manager及Selenium原理分析

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/30759

一、Selenium Manager

1.1 简介

  • Selenium Manager为Selenium提高自动化的驱动程序和浏览器管理。
  • Selenium绑定默认使用此工具,因此无需下载,也无需在代码中添加任何内容,或进行其他操作,即可使用。

1.2 为什么会出现Selenium驱动管理器

  • Selenium的使用依赖两个关键要素:浏览器及其对应的驱动。
  • 在初始阶段,用户需要手动下载并配置浏览器驱动的环境。然而,由于浏览器频繁的更新,导致驱动版本也需要跟着更新,为解决这一问题,出现了三方的驱动管理工具,例如Java的WebDriverManager、Python的webdriver-manager等。
  • 基于这个需求,Selenium官方推出了内置于4.6版本的驱动管理工具Selenium-Manager。
  • Selenium-Manager提供一种便捷的方式,可以自动检测所需浏览器的版本,并下载相应的Web驱动程序,这样用户就无需手动下载和配置Web驱动程序,Selenium会自动处理这些步骤,从而增强了代码的可复用性和维护性。这一新特性使得在不同环境中,执行自动化测试变得更加轻松和高效。

1.3 自动浏览器管理

  • Selenium Manager自动检查浏览器驱动是否安装,如果安装正确,则使用此驱动;如果不是,Selenium Manager将请求远程服务,从已有的存储中找到对应驱动下载。无论哪种情况,浏览器最终也会受到管理。

  • 总之,无需手动更新driver。

  • Chrome:基于Chrome for Testing(CFT) 从Selenium 4.11.0开始。

    • Firefox:基于公开的Firefox版本,从Selenium 4.12.0开始。
    • Edge:计划用于Selenium 4.13.0。

1.4 Selenium-Manager的下载及使用

1.4.1 下载

  1. Selenium 4.6 版本及以上会自动内置Selenium Manager。
  2. Selenium低于此版本,需要自行安装第三方依赖,以下是Python环境的依赖安装指南:
pip install selenium-manager

1.4.2 使用

from webdriver_manager.chrome import ChromeDriverManager

# 初始化 driver
server = Service(executable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=server)

注意:安装完毕后,selenium-manager 的调用是 Selenium 自动调用的,当没有显性设置浏览器驱动路径时,Selenium 会自动调用Selenium-Manager 来下载,管理驱动。

二、Selenium原理分析

2.1 简介

  • Selenium是一个用于Web应用程序的自动化测试工具。Selenium测试能够直接在浏览器中执行,模拟真实的用户操作。
  • 支持的浏览器包括IE(7,8,9,10,11)、Mozilla Firefox,Google Chrome,Opera等。这使得Selenium成为一个强大的跨浏览器测试工具,适用于各种Web应用程序的自动化测试需求。

2.2 Selenium自动化测试的三大组成

  1. 测试脚本:客户端脚本,使用Python或Java编写,负责定义测试逻辑和交互行为。
  2. 浏览器驱动:不同浏览器需要相应的驱动程序,用于实现对浏览器的控制。这是通过Selenium提供的Web Driver来实现的。其作用就是将测试脚本的指令转化为浏览器可执行的动作。
  3. 浏览器:测试目标,即被用于执行测试的浏览器。Selenium提供了各种主流浏览器的支持,包括Chrome。

2.3 Selenium是如何实现对浏览器的自动化测试

以Python代码为例:

2.3.1 注册谷歌浏览器驱动实例对象

from selenium import webdriver
driver = webdriver.Chrome()

代码:webdriver.Chrome()会执行一个cmd命令,该命令的目的是一个ChromeDriver.exe浏览器驱动程序。

事实上,我们手动点击浏览器时,也会在后台启动这样一个程序,因为这个驱动程序是控制浏览器各种操作的关键。

2.3.2 打开浏览器

driver.get("https://www.baidu.com/")
  • selenium\webdriver\chrome\webdriver.py这个代码里存在一个父类RemoteWebDriver
  • 当调用driver.get("")方法时,便会初始化这个父类,在这个父类的初始化函数中,便存在向服务器发送post请求的方法self.start_session(capabilities,browser_profile)返回一个sessionId,用以表明当前浏览器页面的会话对象。

2.3.3 操作浏览器

  • 找到元素并进行点击操作
driver.findelement(By.Id,"asd").click()

2.3.4 浏览器操作接口地址

  • 包:selenium.webdriver.remote.remote_connection import RemoteConnection 里定义了 selenium 操作需要的接口地址。

2.3.5 如何操作这些接口来实现浏览器控制

  • 使用execute方法调用_request方法通过urilib3标准库向服务器发送对应操作请求地址,进而实现浏览器操作。
  • 至于如何将这些操作与操作的对象联系起来,则需要前面打开浏览器页面时返回sessionId来完成意义对应。

2.3.6 总结

  1. 浏览器运行的逻辑,是浏览器本身是通过浏览器驱动来操作的,厂商在开发浏览器时,会将对浏览器所有的操作接口地址封装在对应浏览器的驱动程序里。当外界需要操控浏览器时,就需要去调用这些接口。
  2. selenium自动化测试中selenium本身针对不同的浏览器,创建了不同的第三方库,这些第三方库中,根据浏览器驱动的操作接口地址,封装了selenium操作的方法,在代码中使用不同的selenium操作方法,会访问对应的驱动操作接口地址。

推荐学习

【霍格沃兹测试开发】7天软件测试快速入门带你从零基础/转行/小白/就业/测试用例设计实战

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)

【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试

【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff

【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享

【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装

【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?

【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!

【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我

【霍格沃兹测试开发】Pytest 与Allure2 一键生成测试报告/ 测试用例断言/ 数据驱动/ 参数化

【霍格沃兹测试开发】App 功能测试实战快速入门/adb 常用命令/adb 压力测试

【霍格沃兹测试开发】阿里/ 百度/ 腾讯/ 滴滴/ 字节/ 一线大厂面试真题讲解,卷完拿高薪Offer !

【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置

【霍格沃兹测试开发】如何用Postman 做接口测试,从入门到实战/ 接口抓包(最新最全教程)

【霍格沃兹测试开发】6 小时轻松上手功能测试/ 软件测试工作流程/ 测试用例设计/Bug 管理

【霍格沃兹测试开发】零基础小白如何使用Postman ,从零到一做接口自动化测试/ 从零基础到进阶到实战

【霍格沃兹测试开发】建议收藏全国CCF 测试开发大赛Python 接口自动化测试赛前辅导 / 项目实战

更多软件测试开发视频教程点此


软件测试职业发展
在这里插入图片描述
零基础入门
在这里插入图片描述

测试必备编程篇
在这里插入图片描述
自动化测试
在这里插入图片描述
性能测试
在这里插入图片描述
测试管理
在这里插入图片描述
工程效能篇
在这里插入图片描述
面试求职篇

软件测试的面试宝典,内含一线互联网大厂面试真题、面试技巧、软件测试面试简历指导,免费领取!
在这里插入图片描述

  • 15
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值