如何使用 Python+selenium 进行 web 自动化测试?

news2024/11/15 4:20:03

使用Python+selenium进行web自动化测试主要分为以下步骤:

在华为工作了10年的大佬出的Web自动化测试教程,华为现用技术教程!_哔哩哔哩_bilibili在华为工作了10年的大佬出的Web自动化测试教程,华为现用技术教程!共计16条视频,包括:1. 【web自动化】主流Web自动化测试技术对比、2. 【web自动化】Selenium自动化测试环境一键搭建、3. 【web自动化】Selenium八大定位策略详解等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1sM4y1d7tq/?spm_id_from=333.337.search-card.all.click

1、安装Python和selenium

首先需要安装Python和selenium库。可以通过pip命令进行安装:

# 安装 Python
sudo apt-get install python3

# 安装 pip
sudo apt-get install python3-pip

# 安装 selenium 库
pip3 install selenium

2、下载浏览器驱动程序

Selenium需要浏览器的驱动程序来操作浏览器。可根据使用的浏览器类型选择对应的驱动程序,并将其添加到系统路径中或者在代码中指定路径。

例如,如果使用Chrome浏览器,则需要下载ChromeDriver驱动程序:

wget https://chromedriver.storage.googleapis.com/89.0.4389.23/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudo mv chromedriver /usr/local/bin/

3、编写测试脚本

编写自动化测试脚本,通过selenium提供的API来模拟用户操作,并检查结果。以下是一个简单的示例:

from selenium import webdriver

# 创建WebDriver对象,启动浏览器
driver = webdriver.Chrome()

# 打开网页
driver.get('https://www.baidu.com')

# 查找搜索框并输入内容
input_box = driver.find_element_by_css_selector('#kw')
input_box.send_keys('selenium')

# 查找“百度一下”按钮并点击
submit_button = driver.find_element_by_css_selector('#su')
submit_button.click()

# 检查搜索结果中是否包含关键字
assert 'selenium' in driver.title

# 关闭浏览器
driver.quit()

以上代码使用Chrome浏览器,打开百度首页,输入" selenium"并提交搜索,并检查搜索结果页面标题中是否包含 "selenium"。可以根据需要修改脚本。

4、运行测试脚本

运行自动化测试脚本,可使用命令行或者任意IDE调试器执行脚本。

例如,使用Python解释器执行脚本:

python3 test.py

运行脚本后,会启动Chrome浏览器并模拟用户操作,最终检查结果。如果一切正常,就可以在控制台看到输出 "OK"。

这只是一个简单的示例,实际上web自动化测试涉及到很多方面,如元素定位、异常处理、报告生成、并发执行等问题,需要根据实际需求进行设计和扩展。

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

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

相关文章

VMware ESXi 7.0 U3m macOS Unlocker OEM BIOS (标准版和厂商定制版)

VMware ESXi 7.0 U3m macOS Unlocker & OEM BIOS (标准版和厂商定制版) 提供标准版和 Dell (戴尔)、HPE (慧与)、Lenovo (联想)、Inspur (浪潮)、Cisco (思科) 定制版镜像 请访问原文链接:https://sysin.org/blog/vmware-esxi-7-u3-oem/,查看最新版…

AC/DC、DC/DC转换器

什么是AC? Alternating Current(交流)的首字母缩写。 AC是大小和极性(方向)随时间呈周期性变化的电流。 电流极性在1秒内的变化次数被称为频率,以Hz为单位表示。 什么是DC? Direct Current&…

C语言的存储类别,链接和内存管理

目录 1.1作用域 1.2链接 1.3存储期 1.4存储类别 1.4.1自动变量 1.4.2寄存器变量 1.4.3块作用域的静态变量 1.4.4外部链接的静态变量 1.4.5内部链接的静态变量 1.4.6存储类别说明符 1.5动态内存管理 1.5.1出现原因 栈内存 数据段与代码段 堆内存 1.5.2动态内存函…

Flink第二章:基本操作

系列文章目录 Flink第一章:环境搭建 Flink第二章:基本操作 文章目录 系列文章目录前言一、Source1.读取无界数据流2.读取无界流数据3.从Kafka读取数据 二、Transform1.map(映射)2.filter(过滤)3.flatmap(扁平映射)4.keyBy(按键聚合)5.reduce(归约聚合)6.UDF(用户自定义函数)7.…

4个ChatGPT拓展出来的工具

现在ChatGPT 相关 的方向非常的多,各个大厂一个一个推出了自己的大模型,从国外到国内,ChatGPT 相关 也有几十个,这是大厂的方向。 对于比较小的团队,很多都是在ChatGPT 的基础上进行的开发,下面罗列出4个在…

ASO优化之应用内活动的投放策略

我们可以在“落地页”,“搜索结果页”,“详情页”,“today标签页”等各个版面展示应用的活动投放,这不仅能够快速被用户浏览到,自然能带来更多的流量,还能促进用户的活跃度。 那我们该如何进行投放呢&…

哪一本书让你逢人就推荐的?

小编逢人就推荐的程序员经典书目: 1、【樊登推荐】浪潮之巅 第四版 作者:吴军 这不是一本科技产业发展历史集,而是在这个数字时代,一本IT人非读不可,而非IT人也应该拜读的作品。 《浪潮之巅 第四版》是一本介绍互联…

【算法与数据结构】链表——题目详解

题目详解 Leetcode-206. 反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head [1,2] 输出&#x…

《Andorid开源》greenDao 数据库orm框架

一 前言:以前没用框架写Andorid的Sqlite的时候就是用SQLiteDatabase ,SQLiteOpenHelper ,SQL语句等一些东西,特别在写SQL语句来进行 数据库操作的时候是一件很繁琐的事情,有时候没有错误提示的,很难找到错误的地方&a…

C#--使用Quartz实现定时任务

C#小技巧–使用Quartz实现定时任务 Quartz.net 简介 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等。 Quartz.NET允许开发人员根据时间间隔(或天&…

js - 原型和原型链的简单理解

前言 有一个概念需要清楚,只有构造函数才有.prototype对象,对象是没有这个属性的,__proto__只是浏览器提供的非标准化的访问对象的构造函数的原型对象的一种方式; prototype(原型对象) 函数即对象,每个函数都有一个prototype属…

代码随想录 数组篇 螺旋矩阵II Java实现

文章目录 (中等)59. 螺旋矩阵II(中等)54. 螺旋矩阵(简单)JZ29 顺时针打印矩阵 (中等)59. 螺旋矩阵II 因为我是先做的JZ29,所以看到这题的时候,几乎就是一样的…

最适合家用的洗地机哪个牌子好?2023洗地机推荐

洗地机是目前众多清洁工具中的热门之选,我身边很多朋友都选择了洗地机来处理家居清洁,一说一,洗地机可以处理干湿垃圾,还都有一键自清洁功能,用起来确实方便简单。不过,市面上的洗地机参差不齐,…

RabbitMQ 详解

文章目录 RabbitMQ 详解一、MQ 简介1. MQ优缺点2. MQ应用场景3. AMQP 和 JMS4. 常见的 MQ 产品 二、RabbitMQ 工作原理三、Linux环境安装RabbitMQ1. 安装 Erlang2. 安装 RabbitMQ3. 管控台 四、RabbitMQ 工作模式1. 简单模式(Hello World)2. 工作队列模式(Work Queue)3. 发布订…

PMP项目管理-[第十三章]相关方管理

相关方管理知识体系: 识别相关方: 规划相关方参与: 管理相关方参与: 监督相关方参与 : 13.1 识别相关方 定义:定期识别项目相关方,分析和记录他们的利益、参与度、相互依赖性、影响力和对项目成…

rk3568 修改开机logo

rk3568 修改开机显示logo Android 显示 logo 的作用是为了标识应用程序或设备的品牌和身份。在应用程序中,logo 可以帮助用户快速识别应用程序,并与其他应用程序区分开来。在设备中,logo 可以帮助用户识别设备的品牌和型号,以及与…

抽象轻松js

全新声明类型2.0版本 var、let、const 三者的区别 用我的世界来区别三者关系 特别的本质关系是一样,都是有木头(声明)钻石(赋值)组成 木头(声明)钻石(赋值) 钻石剑(…

鸿蒙Hi3861学习六-Huawei LiteOS-M(软件定时器)

一、简介 软件定时器,是基于系统Tick时钟中断且由软件来模拟的定时器。当经过设定的Tick时钟计数值后,会触发用户定义的回调函数。定时精度与系统Tick时钟周期有关。 硬件定时器受硬件的限制,数量上不足以满足用户的实际需求。因此&#xff0…

如何监控软件定义的数据中心(SDDC)

网络管理不仅要防止网络停机,还要优化网络性能,最终增强最终用户体验。当今的网络变得如此先进,以至于传统模型已经过时,无法满足现代动态需求。用日益敏捷、安全、可扩展和可靠的现代可部署解决方案取代传统的遗留系统至关重要。…

企业遭受勒索攻击后,要支付赎金吗?

企业遭受勒索攻击后,要支付赎金吗? 针对这个问题的答案,一些企业选择了“不要”。例如:意大利法拉利公司拒绝向黑客支付赎金;蔚来汽车老板拒绝支付1500万的赎金;澳洲最大医保公司在被盗取970万客户信息后&a…