selenium自动化测试入门,一篇足矣

news2024/10/6 2:22:37

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

同时,我也为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接点击文末小卡片免费领取资料文档

软件测试视频教程观看处:

B站封神的接口测试教程,30天练完70个项目实战(含自动化测试、性能测试),学完即就业,永久白嫖!

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

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、关闭计划任务

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

图片

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

图片

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

图片

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

图片

2、关闭后台服务

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

图片

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

图片

注意事项

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

五、总结

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近100个G。

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1032659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

共享WiFi贴项目怎么实施与运营,微火为你提供高效解答!

共享WiFi贴是一项有前景的商业项目,不仅可以满足用户对网络的需求,还可以为创业者带来盈利的机会。那么,我们来看看如何有效地开展共享WiFi贴项目。 最重要的是选择合适的位置。共享WiFi贴项目的成功与否很大程度上取决于位置选择。优先选择人…

web前端之float布局与flex布局

float布局 <style>.nav {overflow: hidden;background-color: #6adfd0; /* 导航栏背景颜色 */}.nav a {float: left;display: block;text-align: center;padding: 14px 16px;text-decoration: none;color: #000000; /* 导航栏文字颜色 */}.nav a:hover {background-col…

示例-安装office2016图文教程简体中文下载安装包

目录 简介 步骤 总结 简介 Office 2016作为一款办公软件套件&#xff0c;下载和安装 都具有许多令人印象深刻的特点。让我来为你介绍一下&#xff1a;Office 2016注重实现跨平台的一致性。无论你是在Windows、Mac、iOS还是Android上使用Office&#xff0c;你都可以享受到相似…

软件测试之白盒测试

白盒测试 白盒测试&#xff08;White Box Testing&#xff09;又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试只测试软件产品的内部结构和处理过程&#xff0c;而不测试软件产品的功能&#xff0c;用于纠正软件系统在描述、表示和规格上的错误&#xff0c…

「回到县城」正成为大学生就业的无奈选择

现如今&#xff0c;上大学已经不再是当年的天之骄子&#xff0c;现在的大学升学率极高&#xff0c;而毕业就业率却与之相反。 只有少数人能成为优秀的人&#xff0c;而竞争激烈的结果只有更少的人获得胜利。 想象一下&#xff0c;在大城市里打拼&#xff0c;就像千军万马争夺…

图像分割基础,点、线、孤立点检测(数字图像处理概念 P7)

文章目录 基础特性边缘检测孤立点检测线检测全局阈值处理 分割将图像细分成 构成他的子区域或对象 异常图像分割是最困难的图像处理之一&#xff0c;分割的程度取决于问题 基础特性 边缘检测 孤立点检测 线检测 全局阈值处理

Django — 介绍和搭建

目录 一、介绍二、虚拟环境1、作用2、创建2.1、安装虚拟环境模块2.2、创建文件夹2.3、配置环境变量 三、项目创建四、目录介绍1、manage.py2、__ init __.py3、asgi.py4、settings.py5、urls.py6、wsgi.py 五、启动服务1、配置启动服务2、从终端启动 六、创建子应用1、子应用2、…

小程序中如何(批量)删除会员卡

因为一些原因&#xff0c;可能需要删除会员卡。下面我将介绍一下小程序中如何删除会员卡的步骤&#xff0c;包括批量删除会员卡的操作。 1. 找到指定的会员卡。在管理员后台->会员管理处&#xff0c;找到需要删除的会员卡。也支持对会员卡按卡号、手机号和等级进行搜索。 2…

【深度学习实验】前馈神经网络(八):模型评价(自定义支持分批进行评价的Accuracy类)

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. __init__(构造函数) 2. update函数(更新评价指标) 5. accumulate(计算准确率) 4. reset(重置评价指标) 5. 构造数据进行测试 6. 代码整合 一、实验介绍 本文将实…

基于Yolov8的工业小目标缺陷检测(5):大缺陷小缺陷一网打尽的轻量级目标检测器GiraffeDet,暴力提升工业缺陷检测能力

💡💡💡本文改进:大小缺陷一网打尽的GiraffeDet,提升处理低分辨率图像和小物体等更困难的检测能力。 GiraffeDet | 亲测在工业小目标缺陷涨点明显,原始mAP@0.5 0.679提升至0.727 收录专栏: 💡💡💡深度学习工业缺陷检测 :http://t.csdn.cn/fVSgs ✨✨✨提供…

【一】Spring Cloud 系列简介

Spring Cloud 系列简介 简介&#xff1a;从单体架构到分布式架构&#xff0c;再到微服务架构&#xff0c;一路经历走来spring框架也一直在与时俱进&#xff0c;回顾下来感觉做Java开发就是基于spring开发&#xff0c;spring也一路发展出了spring boot&#xff0c;在此基础上发…

阿里云服务器u1和经济型e系列性能差异?哪个比较好?

阿里云服务器经济型e实例和云服务器u1有什么区别&#xff1f;同CPU内存配置下云服务器u1性能更强&#xff0c;u1实例价格也要更贵一些。经济型e实例属于共享型云服务器&#xff0c;不同实例vCPU会争抢物理CPU资源&#xff0c;并导致高负载时计算性能波动不稳定&#xff0c;而云…

LLMs资源

一、ChatGPT 《中科院学术专业版 ChatGPT》&#xff1a; gpt_academic项目针对了中科院日常科研工作&#xff0c;基于 ChatGPT 专属定制了一整套实用性功能&#xff0c;用于优化学术研究以及开发日常工作流程。其中内置的工具&#xff0c;包括但不限于以下这些&#xff1a;学术…

软件测试的理论基础1

软件的生命周期 可行性研究和计划&#xff08;立项&#xff09; 需求分析 概要设计&#xff08;测试计划&#xff09; 详细设计&#xff08;测试方案&#xff09; 实现&#xff08;开发阶段&#xff1b;包含单元测试&#xff09; 组装测试&#xff08;集成测试&#xff09; 确…

十六)Stable Diffusion教程:出图流程化

今天说一个流程化出图的案例&#xff0c;适用很多方面。 1、得到线稿&#xff0c;自己画或者图生图加线稿lora出线稿&#xff1b;如果想sd出图调整参数不那么频繁细致&#xff0c;则线稿的素描关系、层次、精深要表现出来&#xff0c;表现清楚。 2、文生图&#xff0c;seed随机…

kafka的 ack 应答机制

目录 一 ack 应答机制 二 ISR 集合 一 ack 应答机制 kafka 为用户提供了三种应答级别&#xff1a; all&#xff0c;leader&#xff0c;0 acks &#xff1a;0 这一操作提供了一个最低的延迟&#xff0c;partition的leader接收到消息还没有写入磁盘就已经返回ack&#x…

PyCharm 远程debug 快速上手

一、方法 1. 配置远程解释器&#xff08;简单高效&#xff0c;强烈推荐&#xff01;&#xff01;&#xff01;&#xff09; 要求: 通过 SSH 从本地机器访问远程服务器&#xff0c;使用任何预定义的端口从远程服务器访问本地机器&#xff0c;最好关掉vpn等网络代理服务。 常见…

中通快递一键查询,轻松掌握物流信息

在如今的快速发展的电商时代&#xff0c;快递已成为人们生活中不可或缺的一部分。随着快递业务的繁荣&#xff0c;快递公司也纷纷推出了各种查询方式&#xff0c;方便顾客随时掌握自己包裹的物流信息。在这其中&#xff0c;中通快递无疑是许多人选择的首选。下面&#xff0c;我…

合并两个升序链表,哨兵位的理解

开始时也要判断是否有一个链表本来就是空&#xff0c;如果是&#xff0c;直接返回另外一个链表 代码&#xff1a; struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){if(list1NULL){return list2;}if(list2NULL){return list1;} struct ListN…

仿互站资源商城平台系统源码多款应用模版

首先安装好环境&#xff0c;推荐用Linux宝塔 请示&#xff1a;安装前请先别开防火墙&#xff0c;和跨站篡改 第1步上传程序到服务器&#xff0c; 第2步修改数据库文件&#xff0c;config/config.php 第3步&#xff0c;导入数据&#xff0c;根目录的数据库文件夹里面 数据.s…