自动化测试:Selenium原理及安装教程

2 篇文章 0 订阅
订阅专栏

目录

一、客户端和驱动(环境)安装

1、安装客户端库

2、安装浏览器和驱动

二、简单示例(Python自动化开发)

省略浏览器驱动路径

三、常见问题

关闭 chromedriver 日志

浏览器首页显示防病毒重置设置

扩展知识


Selenium 是一套 Web网站 的程序自动化操作 解决方案。

通过它,我们可以写出自动化程序,像人一样在浏览器里操作web界面。 比如点击界面按钮,在文本框中输入文字 等操作。

而且还能从web界面获取信息。 比如获取 火车、汽车票务信息,招聘网站职位信息,财经网站股票价格信息 等等,然后用程序进行分析处理。

Selenium 的自动化原理是这样的

从上图可以看出:

我们写的自动化程序 需要使用 客户端库

我们程序的自动化请求都是通过这个库里面的编程接口发送给浏览器。

比如,我们要模拟用户点击界面按钮, 自动化程序里面就应该 调用客户端库相应的函数, 就会发送 点击元素 的请求给 下方的 浏览器驱动。 然后,浏览器驱动再转发这个请求给浏览器。

这个自动化程序发送给浏览器驱动的请求 是HTTP请求。

客户端库从哪里来的? 是Selenium组织提供的。

Selenium组织提供了多种 编程语言的Selenium客户端库, 包括 java,python,js, ruby等,方便不同编程语言的开发者使用。

我们只需要安装好客户端库,调用这些库,就可以发出自动化请求给浏览器咯。

浏览器驱动 也是一个独立的程序,是由浏览器厂商提供的, 不同的浏览器需要不同的浏览器驱动。 比如 Chrome浏览器和 火狐浏览器有 各自不同的驱动程序。

浏览器驱动接收到我们的自动化程序发送的界面操作请求后,会转发请求给浏览器, 让浏览器去执行对应的自动化操作。

浏览器执行完操作后,会将自动化的结果返回给浏览器驱动, 浏览器驱动再通过HTTP响应的消息返回给我们的自动化程序的客户端库。

自动化程序的客户端库 接收到响应后,将结果转化为 数据对象 返回给 我们的代码。

我们的程序就可以知道这次自动化操作的结果如何了。

我们再总结一下,selenium 自动化流程如下:

  1. 自动化程序调用Selenium 客户端库函数(比如点击按钮元素)

  2. 客户端库会发送Selenium 命令 给浏览器的驱动程序

  3. 浏览器驱动程序接收到命令后 ,驱动浏览器去执行命令

  4. 浏览器执行命令

  5. 浏览器驱动程序获取命令执行的结果,返回给我们自动化程序

  6. 自动化程序对返回结果进行处理

一、客户端和驱动(环境)安装

Selenium环境的安装主要就是安装两样东西: 客户端库浏览器 驱动

1、安装客户端库

不同的编程语言选择不同的Selenium客户端库。

对应我们Python语言来说,Selenium客户端库的安装非常简单,用 pip 命令即可。

打开 命令行程序,运行如下命令

pip install selenium

如果安装不了,可能是网络问题,可以指定使用国内的豆瓣源

pip install selenium -i https://pypi.douban.com/simple/

2、安装浏览器和驱动

浏览器驱动 是和 浏览器对应的。 不同的浏览器 需要选择不同的浏览器驱动。

目前主流的浏览器中,谷歌 Chrome 浏览器对 Selenium自动化的支持更加成熟一些。

推荐大家使用 Chrome浏览器 。

可以点击这里,下载安装谷歌浏览器

确保Chrome浏览器安装好以后,请大家打开下面的连接,访问Chrome 浏览器的驱动下载页面

Chrome 浏览器驱动下载地址

注意浏览器驱动 必须要和浏览器版本匹配,下图红圈里面的版本号 就是和浏览器版本号对应的

比如:当前Chrome浏览器版本是98, 通常就需要下载98开头的目录里面的驱动程序 。

注意:驱动和浏览器的版本号越接近越好,但是略有差别,比如98和97 ,通常也没有什么问题。

查看chrome浏览器版本:

 找到对应版本

打开目录,里面有3个zip包,分别对应Linux、Mac、Windows平台。

如果我们是Windows平台的电脑,就下载 chromedriver_win32.zip

这是个zip包,下载下来之后,解压里面的程序文件 chromedriver.exe 到某个目录下面,注意这个目录的路径最好是没有中文名和空格的。

比如,解压到 d:\tools 目录下面。

也就是保证我们的Chrome浏览器驱动路径为 D:\tools\Chrome_plugins_driver\chrome_driver\chromedriver.exe

上面的网址,有些朋友可能打不开,我们在如下百度网盘提供了较新的驱动给大家下载

链接:https://pan.baidu.com/s/1qMzJ1n-KknqaHHd5rhDfEA 
提取码:1111

如果你选择微软 Edge浏览器, 点击这里下载驱动

基于selenium的web自动化环境搭建就是这些,比较简单。


二、简单示例(Python自动化开发)

点击这里,边看视频讲解,边学习以下内容

下面的代码, 可以自动化的 打开Chrome浏览器,并且自动化打开百度网站,可以大家可以运行一下看看。

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# 创建 WebDriver 对象,指明使用chrome浏览器驱动
wd = webdriver.Chrome(service=Service(r'd:\tools\chromedriver.exe'))

# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址
wd.get('https://www.baidu.com')

其中,下面这行代码,就会运行浏览器驱动,并且运行Chrome浏览器

wd = webdriver.Chrome(service=Service(r'd:\tools\chromedriver.exe'))

注意,等号右边 返回的是 WebDriver 类型的对象,我们可以通过这个对象来操控浏览器,比如 打开网址、选择界面元素等。


而下面这行代码,就是使用 WebDriver 的 get 方法 打开网址 百度

wd.get('https://www.baidu.com')

执行上面这行代码时,自动化程序就发起了 打开百度网址的 请求消息 ,通过浏览器驱动, 给 Chrome浏览器。

Chome浏览器接收到该请求后,就会打开百度网址,通过浏览器驱动, 告诉自动化程序 打开成功。

执行完自动化代码,如果想关闭浏览器窗口可以调用WebDriver对象的 quit 方法,像这样 wd.quit()

省略浏览器驱动路径

前面,我们的代码创建 WebDriver对象时,需要指定浏览器驱动路径,比如

from selenium.webdriver.chrome.service import Service
wd = webdriver.Chrome(service=Service(r'd:\tools\chromedriver.exe'))

这样写有几个问题:

一是,比较麻烦, 每次写自动化代码都 要指定路径。

二是,如果你的代码给别人运行,他的电脑上存放浏览器驱动的路径不一定和你一样(比如他的电脑是苹果Mac电脑),得改脚本。

有什么好办法呢?

我们可以把浏览器驱动 所在目录 加入环境变量 Path , 写代码时,就可以无需指定浏览器驱动路径了,像下面这样

wd = webdriver.Chrome()

因为,Selenium会自动在环境变量 Path 指定的那些目录里查找名为chromedriver.exe 的文件。

一定要注意的是, 加入环境变量 Path 的,

不是浏览器驱动全路径,比如 D:\tools\Chrome_plugins_driver\chrome_driver\chromedriver.exe

而是 浏览器驱动所在目录,比如 D:\tools\Chrome_plugins_driver\chrome_driver

而且设置完环境变量后,别忘了重启IDE(比如 PyCharm) 新的环境变量才会生效。

那么,selenium又是如何 自动化地 在网页上 点击、输入、获取信息,将在接下来的章节要学习。

三、常见问题

关闭 chromedriver 日志

缺省情况下 chromedriver被启动后,会在屏幕上输出不少日志信息,如下

DevTools listening on ws://127.0.0.1:19727/devtools/browser/c19306ca-e512-4f5f-b9c7-f13aec506ab7
[21564:14044:0228/160456.334:ERROR:device_event_log_impl.cc(211)] [16:04:56.333] Bluetooth: bluetooth_adapter_winrt.cc:1072 Getting Default Adapter failed.

可以这样关闭

from selenium import webdriver

# 加上参数,禁止 chromedriver 日志写屏
options = webdriver.ChromeOptions()
options.add_experimental_option(
    'excludeSwitches', ['enable-logging'])

wd = webdriver.Chrome(options=options  # 这里指定 options 参数
)

浏览器首页显示防病毒重置设置

有的朋友的电脑上Selenium自动化时,浏览器开始显示如下

可以这样解决:

  • 命令行输入 regedit ,运行注册表编辑器

  • 在左边的目录树找到 HKEY_CURRENT_USER\Software\Google\Chrome

  • 删除其下的 TriggeredReset 子项

  • 关闭 注册表编辑器

扩展知识

浏览器和驱动之间的接口是各浏览器厂商私有的,通常我们无需关心。

喜欢刨根问底的朋友,可以参考  这个链接,了解Chrome浏览器和Chrome之间的接口

Selenium WebDriver自动化测试(基础篇)--自动化测试工具简介和原理
我先测了
03-10 374
Web自动化测试框架开篇,不讲架构、也不讲分层,先介绍selenium工具,再理解其工作原理,搭建开发环境并调试通过,能够正常的跑起来,还顺带截图说明了一下selenium不太支持的自动化测试行为,是不太支持不是不能实现。因为那些问题都会在面试过程中被问及,当然会多种解决方案,答案也并不唯一。介绍具来自百度百科Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。
UI自动化测试框架:selenium webdriver原理
余小梦同学的博客
08-25 1274
当我开始想要学习UI自动化测试,开始搜索相关资料时,展现在我眼前的除了经典的selenium,还有很多如puppeteer、cypress、testcafe、Airtest,我决定对提到最多的selenium、puppeteer和cypress的原理做一番研究。 Selenium Selenium webdriver 使用WebDriver来远程控制浏览器实例, 并模拟用户与浏览器的交互。 当我们按照入门教程,在本地环境中实现了使用selenium自动化控制浏览器,完成打开amazon首页-> 输入"
Selenium自动化测试框架工作原理你明白了吗?
jj2772367224的博客
08-10 4209
selenium client(Java等语言编写的自动化测试脚本)初始化一个service服务,通过Webdriver启动浏览器驱动程序通过RemoteWebDriver向浏览器驱动程序发送HTTP请求,浏览器驱动程序解析请求,打开浏览器,并获得sessionid,如果再次对浏览器操作需携带此id打开浏览器,绑定特定的端口,把启动后的浏览器作为webdriver的remote server。...
自动化测试selenium工作原理
ReSpace的博客
10-07 402
selenium工作原理
Selenium原理初步--Android自动化测试学习历程
weixin_30357231的博客
09-28 146
章节:自动化基础篇——Selenium原理初步(第五讲) 注:其实所有的东西都是应该先去用,但是工具基本都一样,底层都是用的最基础的内容实现的,测试应该做的是: (1)熟练使用工具,了解各个工具的利弊,达到工具优选、因时因地制宜的目的 (2)读源码,理解原理,能够对开源的源码进行二次再创造,改编成适合自身产品的工具;或者自己直接编写适合测试的工具 (3)能够对测试过程中发生的异...
自动化测试框架Selenium工作原理
weixin_34233856的博客
12-27 306
本文所讲的Selenium是指Selenium Webdriver Selenium WebDriver与RC的功能相同,并且包含原始的1.x绑定。它涉及语言绑定和单个浏览器控制代码的实现。这通常被称为“WebDriver”,有时也被称为Selenium 2。 Selenium 1.0 + WebDriver = Selenium 2.0 WebDriver被设计在一个更简单和更简洁的编...
Selenium 4.0 IDE 自动化测试实战
06-30
本课程包含了Selenium 4.0新版本的介绍;Selenium的历史演变;框架原理。 此外,本课程重点介绍了4.0.0a6版本下的Selenium IDE的应用。包括: Selenium IDE的环境搭建和准备。...Selenium IDE测试总结。
Python自动化测试Selenium入门与应用
"这篇文档介绍了如何使用Python结合Selenium进行自动化测试,重点是Selenium工具的介绍、安装和基本使用,特别是Selenium IDE的录制功能。" 在IT领域,自动化测试是一个重要的环节,能有效提高工作效率,减少人为...
Python自动化测试Selenium 2 初学者指南
本书《Selenium 2 Testing Tools Beginner's Guide》由David Burns撰写,旨在帮助读者从零开始学习使用Selenium进行Web自动化测试Selenium是一款强大的开源测试框架,支持多种编程语言,包括Python,用于模拟用户...
自动化测试selenium
weixin_45795182的博客
05-27 2224
目录一、什么是自动化测试1.1单元测试1.2接口自动化1.3 UI自动化二、如何实施自动化测试三、自动化测试需要了解的技能四、selenium介绍4.1 Selenium IDE4.2 Webdriver 一、什么是自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 自动化测试包括UI自动化,接口自动化,单元测试自动化。按照这个金字塔模型来进行自动化测试规划,可以产生最佳的自贡话测试产出投入比(R
自动化测试以及selenium原理详述
laice3455358286的博客
04-10 1170
一、自动化简介 1、什么是自动化? 看近期的职业机会,提到“软件测试工程师”,基本上都有关于自动化测试的要求。 例如: 了解 selenium、appium或者其他自动化测试框架 至少熟悉一门面向对象开发语言,有一定的代码功底优先 熟悉Java或者python,有一定的测试自动化经验和代码阅读能力 2、自动化解读: 自动化测试就是让被测试的软件自己运行起来,执行软件的功能;或者就是让其他的工具自己运行起来,去检查软件的内部和外部。 让机器自己动,就是自动。让机器按照人类的要求,把软件的所有功能遍历一
自动浏览器_基于Selenium自动化测试脚本执行原理分析
weixin_39646831的博客
11-08 844
摘要:Selenium是一系列基于web的界面自动化测试工具集合,提供了全面的测试函数,用于支持B/S类应用的界面自动化测试Selenium可以直接控制浏览器完成各种操作,支持多个平台、多种浏览器、多种编程语言的测试脚本。本文主要阐述了selenium 1和webdriver执行自动化测试脚本的原理,并通过一个简单的自动化测试脚本实例进行原理剖析。关键字:自动化测试selenium ...
Selenium自动测试与原理 笔记
moonboat0331的专栏
09-05 1422
Selenium是ThoughtWork公司专门为 Web 应用而开发的自动化测试工具,现由OpenQA托管和维护。 Selenium 的核心,也称 browser bot,是用 JavaScript 编写的。这使得测试脚本可以在受支持的浏览器中运行。browser bot 负责执行从测试脚本接收到的命令,测试脚本要么是用 HTML 的表布局编写的,要么是使用一种受支持的编程语言编写的。
selenium 自动化之一---自动化原理及流程
唯一1250
05-08 2301
首先我们要明确,为什么要进行自动化,实现自动化的目的是什么,就是让程序代替人工来进行测试,来提高测试效率和重复测试的任务,大部门ui自动化测试,有助于回归测试的阶段 本文主要讲解selenium的ui自动化测试,那么他的测试过程是如何实现的呢 我们在操作一个简单的流程是 第一步:我们需要导入我们所需要selenium支持的包 For example: from selenium import w...
自动化测试selenium篇)
最新发布
m0_63475519的博客
04-12 2160
自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程自动化测试包括UI自动化,接口自动化,单元测试自动化。按照这个金字塔模型来进行自动化测试规划,可以产生最佳的自贡话测试产出投入比(ROI),可以用较少的投入获得很好的收益。
Selenium自动化测试实践:从原理到实战
"本文将介绍如何使用Selenium实现基于Web自动化测试,涵盖Selenium的基本功能、主要版本及其原理,并提供学习目标,包括理解Selenium框架、设置测试环境以及搭建持续测试的容器。我们将重点讨论Selenium1...
写文章

热门文章

  • 使用matplotlib绘图中文字符显示问题:UserWarning: missing from current font. 89322
  • 解决MobaXtermSSH连接超时(Network error:Conection timed out ) 39626
  • Git 详细安装教程(保姆级详细教程) 32719
  • 使用VScode编写C语言程序 环境安装配置 保姆级教程 29596
  • IDEA2023 常用配置(JDK/系统设置等常用配置) 26785

分类专栏

  • python环境安装 配置 4篇
  • JupyterNotebook配置 8篇
  • MySQL 5篇
  • 大数据知识学习 3篇
  • JAVA环境搭建、开发 8篇
  • 大数据问题排错解决 17篇
  • 前端知识vue/nodejs安装使用 13篇
  • Git学习、安装教程 5篇
  • C/C++安装学习教程 3篇
  • 实战:springboot+vue后台管理系统 5篇
  • 自动化测试 2篇
  • SpringBoot 3篇
  • 大数据案例分析 3篇
  • 大数据安全——案例 9篇
  • Flink 3篇
  • 大数据环境搭建 7篇
  • 软件、工具安装调试 17篇

最新评论

  • 百度网盘下载解除限速

    m0_68545653: 全都跑路了、

  • Maven最新版本安装及配置

    2401_87923976: 没有Notepad++怎么办表情包表情包

  • openEuler虚拟机配置yum源

    挂科的大学生: 表情包表情包表情包root@localhostyum.repos.dl#yummaxecach60SError: Failed to download metadata for repo 15 kB/s|613 B 00:00 '0S':repomd.xml parser error:Parse error at line:1(EntityRef: expecting 您好,我想问一下大佬这个报错怎么解决呀表情包表情包

  • Anaconda和Pycharm详细安装 配置教程

    weixin_73564125: 写的太好太清晰了 支持一波

  • Anaconda JupyterNotebook默认路径设置(指定工作空间)

    qq_51055572: 删除快捷方式的目标那一串字母后再打开annacoda黑窗口就闪退了是怎么回事呀

大家在看

  • 【华为OD技术面试手撕真题】69、找到字符串中所有字母异位词 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS)
  • 用Spring AI 做智能客服,基于私有知识库和RAG技术 1086
  • 【引流必备】最新版内部闲鱼截流私信评论区留言引流助手,独家不封号日精准引流300+【引流脚本+使用教程】
  • C++学习笔记----9、发现继承的技巧(一)---- 使用继承构建类(5)
  • rm: cannot remove: Device or resource busy 解决方案

最新文章

  • Pycharm详细安装 配置教程
  • MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置
  • MySQL 3 环境搭建 MySQL 5.7版本的安装、配置
2024年1篇
2023年36篇
2022年44篇
2021年13篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Siobhan.Mxin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳坪山网站建设公司网站关键词排名 手机优化软件山东网站优化排名陵水黎族自治县网站优化推广基于百度白皮书的优化网站亳州网站优化哪家价格便宜蓟县网站优化必看优化网站竞争优势seo网站优化要具备哪些条件雅安网站优化优化一个网站预算昌邑优化网站产品怎样优化网站建设高明网站关键词优化排名医疗网站的优化推广南芬区网站seo优化排名网站排名优化牜必询1宙斯成都网站关键词优化费用罗湖公司网站优化营销碑林网站优化壹起航如何优化网站排名荆门本地网站优化哪家好长沙市网站优化外包seo如何优化一个网站稷山网站优化如何选择房山网站优化平台放心的网站优化推广利于优化的织梦网站网站模块优化方案书福田企业网站优化服务好传统行业网站优化香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化