selenium自动化测试入门

2023-09-20 15:23:23

Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。

Selenium是用于自动化控制浏览器做各种操作,打开网页,点击按钮,输入表单等等,可以模拟各种人工操作浏览器的功能,

主要用途是自动化测试领域,但是也可以用于爬虫领域,或自动化办公领域。

本次只是简单入门操作,在window环境搭建好Selenium自动化环境。

一,下载Selenium库

pip install selenium,即可进行安装。

如果安装速度慢,可以使用国内源安装。(清华源、豆瓣源...)

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

pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple

二,安装谷歌浏览器和对应驱动

1, 确保你已经安装了Google Chrome 浏览器。查看浏览器版本。

2,  安装Chrome WebDriver 驱动

下载页面: https://registry.npmmirror.com/binary.html?path=chromedriver/

注意:下载Chrome WebDriver 驱动一定要与你Chrome浏览器版本号一致,至少版本号前3列数字一样。

比如我的浏览器版本号是:92.0.4515.40 ; 下载的驱动版本号是:92.0.4515.43

3, 下载完后,解压缩后将WebDriver可执行文件放在Chrome浏览器安装目录下,
比如我的Chrome浏览器安装目录:C:\Program Files\Google\Chrome\Application

4, 设置Chrome浏览器到系统环境变量

这样,你就可以在任何位置调用WebDriver。

安装和配置完成后,你就可以在Python脚本中导入Selenium库并开始使用它来模拟浏览器操作了。

三,简单测试模拟浏览器操作

编写一个简单测试python程序。

import time

from selenium import webdriver

# driver = webdriver.Chrome()

# 此步骤很重要,设置chrome为开发者模式,防止被各大网站识别出来使用了Selenium
options = webdriver.ChromeOptions()
# 去掉提示:Chrome正收到自动测试软件的控制
# options.add_argument('disable-infobars')
# 以键值对的形式加入参数,打开浏览器开发者模式
# options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 打开浏览器开发者模式
# options.add_argument("--auto-open-devtools-for-tabs")
driver = webdriver.Chrome(chrome_options=options)
print('连接Chrome浏览器驱动,打开浏览器.')

# 浏览器窗口最大化
driver.maximize_window()
# 等待3秒启动完成
driver.implicitly_wait(3)

print('输入网址,进入网站网页.')
url = 'https://baidu.com/'
# 输入网址,进入网站网页
driver.get(url)
# 刷新该网页
driver.refresh()
# 休眠3秒
time.sleep(3)

print('关闭Chrome浏览器驱动')
driver.quit()

四,关闭谷歌浏览器更新

使用自动化测试,特别注意浏览器版本号跟驱动版本号一致,但是谷歌浏览器经常自动更新版本,导致自动化驱动程序用着用着就无效了,为了防止经常浏览器更新导致需要重新下载驱动程序,最好办法就是关闭浏览器更新服务。

关闭谷歌浏览器自动更新操作:

  一、关闭计划任务

  1、首先我们需要右键点击我的电脑,在打开的选项里选择管理。

谷歌浏览器怎么关闭自动更新?禁止Chrome自动更新的方法

  2、在打开的对话框中选择任务计划程序。

谷歌浏览器怎么关闭自动更新?禁止Chrome自动更新的方法

  3、在任务计划程序库中找到两个和chrome自动更新相关的任务计划GoogleUpdateTaskMachineCore与GoogleUpdateTaskMachineUA。

谷歌浏览器怎么关闭自动更新?禁止Chrome自动更新的方法

  4、单个选中计划任务,右键在弹出的选项中选择禁用。

谷歌浏览器怎么关闭自动更新?禁止Chrome自动更新的方法

  二、关闭后台服务

  1、再开始打开的管理对话框中,找到下方的服务选项。找到两个和chrome更新相关的服务Google更新服务(gupdate)、Google更新服务(gupdatem)。

谷歌浏览器怎么关闭自动更新?禁止Chrome自动更新的方法

  2、双击选中该服务后,在启动类型中选择禁用。

谷歌浏览器怎么关闭自动更新?禁止Chrome自动更新的方法

  注意事项

  有需要可以禁用更新,无需要尽量不要关闭。

更多推荐

HTML5 游戏开发实战 | 推箱子

经典的推箱子是一个来自日本的古老游戏,目的是在训练玩家的逻辑思考能力。在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙地利用有限的空间和通道,合理安排移动的次序和位置,才能顺利地完成任务。推箱子游戏功能如下:游戏运行载入相应的地图,屏幕中出现一个推箱子的工人,

我想设计一套游戏的奖励系统,有什么值得注意的?

游戏上:游戏成就系统的价值游戏中的成就可以延长游戏时间,让玩家不仅仅是将游戏通关,而是必须完成游戏内所有挑战及发现秘密,这些成就可以与游戏本身的目标一致,也可以独立于游戏的主要或次要目标之外,玩家必须以特别的方式完成游戏才能取得。具体而言:增加游戏收益:与打BOSS掉装备一样,徽章、坐骑、小宠物和称号等成就奖励,需要玩

C++布隆过滤器

一、前提引入思考如下的题目将长度为10的字符串保存在哈希表中,需要多少空间对于每个字符来说,都有256中可能(即ASCII的理论字符数量,常用ASCII编码只有128个),因此一个长度为10的字符串有种比特组合因此将字符串转换成整型,是从大范围转换到小范围。也就是多对一,因此将其映射到哈希表中,一定会产生冲突可能出现如

基于SSM+Vue的网上拍卖系统

末尾获取源码开发语言:JavaJava开发工具:JDK1.8后端框架:SSM前端:采用Vue技术开发数据库:MySQL5.7和Navicat管理工具结合服务器:Tomcat8.5开发软件:IDEA/Eclipse是否Maven项目:是目录一、项目简介二、系统功能三、系统项目截图前台功能模块买家后台功能模块卖者后台功能模

李航老师《统计学习方法》阅读笔记

第1章1.1统计学习统计学习的特点统计学习:计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析现在人们提及机器学习时,往往指统计机器学习,所以可以认为本书介绍的是机器学习方法统计学习的对象统计学习研究的对象是数据(data),统计学习关于数据的基本假设是同类数据具有一定的统计规律性,这是统计学习的前提。e.g

计算机视觉与深度学习-全连接神经网络-详解梯度下降从BGD到ADAM - [北邮鲁鹏]

文章目录参考文章及视频导言梯度下降的原理、过程一、什么是梯度下降?二、梯度下降的运行过程批量梯度下降法(BGD)随机梯度下降法(SGD)小批量梯度下降法(MBGD)梯度算法的改进梯度下降算法存在的问题动量法(Momentum)目标改进思想为什么有效动量法还有什么效果?自适应梯度(AdaGrad)AdaGrad存在的问题

架构核心技术之分布式消息队列

Java全能学习+面试指南:https://javaxiaobear.cn今天我们来学习分布式消息队列,分布式消息队列的知识结构如下图。主要介绍以下内容:同步架构和异步架构的区别。异步架构的主要组成部分:消息生产者、消息消费者、分布式消息队列。异步架构的两种主要模型:点对点模型和发布订阅模型。分布式消息队列异步架构的好

hasOwnProperty 方法解析

一、含义:hasOwnProperty是JavaScript中的一个内置方法,用于检查对象是否具有指定名称的属性。具体来说,hasOwnProperty方法用于判断一个对象是否拥有某个指定的属性,而不是继承自原型链的属性。它是一个布尔值方法,如果对象拥有指定属性,则返回true;否则,返回false。例如,假设有一个对

中文LLaMA模型和指令精调的Alpaca大模型:中文数据进行二次预训练,进一步提升了中文基础语义理解能力

项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实战掌握技能,助力用户更好利用CSDN平台,自主完成项目设计升级,提升自身的硬实力。专栏订阅:项目大全提升自身的硬实力[专栏详细介绍:项目设计

C++ Primer Plus第八章笔记

内联函数编译过程的目标是可执行程序(由一组机器语言指令组成)。运行程序时,操作系统将指令载入到计算机内存中,则每条指令都有其特定的内存地址。内联函数的编译代码与其它程序代码内联,编译器就使用相应的函数代码替换函数调用。1.1常规函数和内联函数常规函数:调用使得程序调到另一个地址(函数的地址),并在函数结束时返回。将程序

合同管理软件功能有哪些?5大常用功能解析

合同管理软件,是建立在信息技术基础上,利用现代企业的先进管理思想,为企业提供决策、计划、控制与经营绩效评估的全方位、系统化的合同管理平台。它能够规范基础数据管理、提高合同管理的效率、让合同管理标准化。它为销售、法律、财务、采购和合同管理团队提供了一套方便的集成工具,让各团队都能够高效地对合同进行管理。合同管理软件是企业

热文推荐