多测师肖sir_高级金牌讲师___ui自动化之selenium001

news2024/11/19 5:50:57

一、认识selenium
(1)selenium是什么?

a、selenium是python中的一个第三方库

b、Selenium是一个应用于web应用程序的测试工具,支持多平台,多浏览器,多语言去实现ui自动化测试,我们现在讲的Selenium版本其实是Selenium2版本
c、Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE,Firefox,Safari,Google Chrome等
(2)selenium库用来做什么?
UI自动化(界面设计)
通过模拟用户手工操作ui页面方式,用代码去实现自动化操作和验证的行为

(3)ui自动化的优点?
a、解决重复性功能测试和验证
b、减少测试人员在回归测试时用例漏测和验证点的漏测
c、减少冒烟测试,回归测试的人力成本,节约时间提高效率。

(4)ui自动化测试的情况?
a.需求不稳定,无法进行ui自动化
b.自动化用例的覆盖率,占用例15%-30%(正常场景)
c、场景覆盖占当前功能场景70%-80%

(5)UI自动化一般在什么时间做?
1、接口测试
2、功能测试
3、ui自动化(在功能测试完以后)

(6)ui自动化和功能测试那个重要?
都重要,ui自动化测试是功能测试测试完以后进行

(7)selenium的优点有哪些?
a.工具免费
b.安装简单,小巧,selenium其实就是一个包
c.支持多语言(java,python)+selenium完成自动化测试
d.支持多平台(window,linux)
e.支持多浏览器 (ie,firefox,chrome)
(8)Selenium工具原理是什么?
Selenium2的核心是webdriver

=========================================================
二、安装selenium库
(1)方法一:在dos命令下,输入以下命令
pip3 install selenium3.141.0 版本
pip install selenium 或python -m pip install selenium
3.141.0
在这里插入图片描述

(2)在pycharm中seting中添加

在这里插入图片描述

备注:注意下版本,3.14.1
在通过pip list 查看安装好的selenium 版本

在这里插入图片描述

第三方库存放在puython中的路径 :E:\python37\Lib\site-packages
在这里插入图片描述

============================================

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

1、谷歌驱动下载

下载连接:https://registry.npmmirror.com/binary.html?path=chromedriver/
在这里插入图片描述

2、将驱动放在C:\python37
在这里插入图片描述
3、安装或下载谷歌浏览器
查看浏览器版本
在这里插入图片描述

如果出现报错:
在这里插入图片描述
下载下urllib库,降低版本:pyhton -m pip install urllib3==1.26.15

=========================================================
调试是否安装:

from  selenium import  webdriver
import  time
dx=webdriver.Chrome() #创建一个 webdriver对象
dx.get("https://www.baidu.com/") #通过对象打开网址
time.sleep(2) #休眠两秒
dx.maximize_window() #窗口最大化
dx.find_element_by_id("kw").send_keys("多测师") #根据id元素定位,输入内容

能运行表示环境安装好

=========================================================
1、打开浏览器
格式:对象.get(“网站”)
案例1:在同一个窗口,后一格浏览区覆盖前一个浏览器
from selenium import webdriver #d导入selenium库中webdriver
from time import * #导入时间模块
d=webdriver.Chrome() # 创建一d对象来打开浏览器,对浏览器实现操作
d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,在用get方法打开网站
sleep(2) #休眠2秒
d.get(“https://www.jd.com/”)

案例2:格式:d.execute_script(“window.open(‘https://www.jd.com/’)”)
重开一个窗口
from selenium import webdriver #d导入selenium库中webdriver
from time import * #导入时间模块
d=webdriver.Chrome() # 创建一d对象来打开浏览器,对浏览器实现操作
d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,在用get方法打开网站
sleep(2) #休眠2秒
d.execute_script(“window.open(‘https://www.jd.com/’)”)
sleep(5)
d.close()

休眠:
1.强制等待 sleep(xx) #等待时间是固定

2.隐性等待 implicitly_wait(xx) # #比sleep更节省时间

3.显性等待 WebDriverWait

=================================

refresh 页面刷新

案例:

from selenium import webdriver #d导入selenium库中webdriver
from time import * #导入时间模块
d=webdriver.Chrome() # 创建一d对象来打开浏览器,对浏览器实现操作
d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,在用get方法打开网站
sleep(2)
d.refresh()
sleep(2)
d.quit()

back 返回上一页

from selenium import webdriver #d导入selenium库中webdriver
from time import * #导入时间模块
d=webdriver.Chrome() # 创建一d对象来打开浏览器,对浏览器实现操作
d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,在用get方法打开网站
sleep(2)
d.get(“https://www.jd.com/”)
sleep(2)
d.back()
sleep(5)

forward 切换到下一页

from selenium import webdriver #d导入selenium库中webdriver
from time import * #导入时间模块
d=webdriver.Chrome() # 创建一d对象来打开浏览器,对浏览器实现操作
d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,在用get方法打开网站
sleep(2)
d.get(“https://www.jd.com/”)
sleep(2)
d.back()
sleep(5)
d.forward()
d.quit()

窗口最大化
d.maximize_window() 窗口最大化

from selenium import webdriver #d导入selenium库中webdriver
from time import * #导入时间模块
d=webdriver.Chrome() # 创建一d对象来打开浏览器,对浏览器实现操作
d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,在用get方法打开网站
sleep(2)
d.maximize_window() #窗口最大化
d.quit()

设置指定窗口的大小
d.set_window_size(500,500)

案例:

from selenium import webdriver #d导入selenium库中webdriver
from time import * #导入时间模块
d=webdriver.Chrome() # 创建一d对象来打开浏览器,对浏览器实现操作
d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,在用get方法打开网站
sleep(2)
d.set_window_size(500,500)
sleep(5)
d.quit()

退出方式:
第一种:close
第二种:quit
案例1:关闭当前窗口 close

案例2:quit

from selenium import webdriver #d导入selenium库中webdriver
from time import * #导入时间模块
d=webdriver.Chrome() # 创建一d对象来打开浏览器,对浏览器实现操作
d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,在用get方法打开网站
sleep(2)
d.execute_script(“window.open(‘https://www.jd.com/’)”)
sleep(5)
d.quit()

截屏:
对象.get_screenshot_as_file(“存放的路径”)

d.get_screenshot_as_file(r"D:\f\aa.png")

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

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

相关文章

软件工程与计算总结(二十)软件交付

软件交付是软件项目的结束阶段 ,标志着软件开发任务的完成——其作为一个分水岭,区分了软件开发与软件维护两个既连续又不同的软件产品生存状态~ 在经历连续的辛苦工作之后,开发人员在胜利曙光之前难免会忽视软件交付阶段的一些工作——在准…

2022年亚太杯APMCM数学建模大赛C题全球变暖与否全过程文档及程序

2022年亚太杯APMCM数学建模大赛 C题 全球变暖与否 原题再现: 加拿大的49.6C创造了地球北纬50以上地区的气温新纪录,一周内数百人死于高温;美国加利福尼亚州死亡谷是54.4C,这是有史以来地球上记录的最高温度;科威特53…

Shiro安全框架登录验证实例解析

一、Shiro框架简单介绍 Apache Shiro是Java的一个安全框架,旨在简化身份验证和授权。Shiro在JavaSE和JavaEE项目中都可以使用。它主要用来处理身份认证,授权,企业会话管理和加密等。Shiro的具体功能点如下: (1&#…

即刻报名,企业服务与新经济论坛亮点提前揭秘!

峰会官网已上线,最新议程请关注:doris-summit.org.cn 即刻报名 Doris Summit 是 Apache Doris 社区一年一度的技术盛会,由飞轮科技联合 Apache Doris 社区的众多开发者、企业用户和合作伙伴共同发起,专注于传播推广开源 OLAP 与实…

每日一题 1726. 同积元组(中等,计数)

直接统计数组中的数字两两组合可以得到的乘积求将相同乘积的组合再两两组合的数量最后由于abcd的值可以互换,每一个组合通过呼唤位置可以得到8种不同的组合,所以最后乘以8 class Solution:def tupleSameProduct(self, nums: List[int]) -> int:d de…

【财政金融】全国各地区财政收入与支出面板数据合集(2000-2022年)

数据简介:2000年到2022年中国经历了快速的经济发展和城市化进程,各地区的财政收入和支出也呈现出显著的增长和变化,全国各地区财政收入与支出的面板数据可用于评估经济发展水平和区域差距,通过比较不同地区之间的财政收入和支出水…

MySQL 从一个表中查出数据并插入到另一个表处理方案(详细)

PS:来源表:t_source、目标表:t_target 第一种 来源表和目标表字段完全一致 insert into t_target select * from t_source; 第二种 来源表和目标表字段部分一致,只想导入来源表部分字段到目标表 insert into t_target(字段1,字…

详解自定义类型:结构体,位段,枚举,联合

目录 1.结构体 1.1 结构的基础知识 1.2 结构的声明 1.3 特殊的声明 1.4 结构的自引用 1.5 结构体变量的定义和初始化 1.6 结构体内存对齐 1.7 修改默认对齐数 1.8 结构体传参 2. 位段 2.1 什么是位段 2.2 位段的内存分配 2.3 位段的跨平台问题 2.4 位段的应用 3. 枚举…

2023年中国恋爱社区未来发展趋势分析:多元化盈利模式实现可持续发展[图]

恋爱社区指满足情侣之间互动、记录及娱乐需求,以维护情侣恋爱关系的虚拟社区。恋爱社区行业主要以线上APP的虚拟形式为用户提供相关服务,其业务包括情侣记录、情侣互动、情侣娱乐、公共社区、线上购物、增值服务。 恋爱社区主要业务 资料来源&#xff1…

【LeetCode】47. 全排列 II

1 问题 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums [1,1,2] 输出: [[1,1,2], [1,2,1], [2,1,1]] 示例 2: 输入:nums [1,2,3] 输出:[[1…

新手如何学习嵌入式Linux?

今日话题,新手如何学习嵌入式Linux?嵌入式底层开发是一项至关重要的技能,广泛应用于各种嵌入式系统中,已经成为我们生活中不可或缺的一部分。因此,学习嵌入式开发变得愈发重要。我这里提供了一份嵌入式学习资料&#x…

ASO优化之增加应用APP安装量的技巧2

我们需要更新应用程序,并且最好以用户会注意到的方式进行更新,季节性或节日的更新非常适合这种情况,例如主题的改变,活动的推出或者是某种折扣。活动是能够让用户相信产品是高质量的关键。 1、应用描述也是优化的一部分。 它是应…

磁珠元器件:微小却强大的科技奇迹 | 百能云芯

在现代科技的背后,有着许多微小而强大的元器件,其中之一是磁珠元器件。尽管它们可能不如计算机芯片或太阳能电池板那样广为人知,但磁珠元器件在各种应用中扮演着重要角色。本文将深入探讨什么是磁珠元器件,它们的工作原理以及在科…

springboot生鲜交易系统springboot46

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

Python爬虫如何设置代理服务器(搭建代理服务器教程)

在Python爬虫中使用代理服务器可以提高爬取数据的效率和稳定性。本文将为您提供搭建代理服务器的详细教程,并提供示例代码,帮助您在Python爬虫中设置代理服务器,实现更高效、稳定的数据抓取。 Python爬虫怎么设置代理服务器(搭建代…

【vSphere 8 自签名证书】企业 CA 签名证书替换 vSphere Machine SSL 证书Ⅰ—— 生成 CSR

目录 替换拓扑图证书关系示意图说明 & 关联博文 1. 默认证书截图2. 使用certificate-manager生成CSR2.1 创建存放CSR的目录2.2 记录PNID和IP2.3 生成CSR2.4 验证CSR 参考资料 替换拓扑图 证书关系示意图 默认情况下,VMCA 与 Machine SSL的关系是 本系列博文要…

剖析深度学习中的epoch与batch_size关系、代码

目录 前言1. 定义2. 代码 前言 为了区分深度学习中这两者的定义,详细讲解其关系以及代码 1. 定义 在 PyTorch 中,“epoch”(周期)和 “batch size”(批大小)是训练神经网络时的两个重要概念 它们用于控…

Scala语言入门

学习了这么久让我们来回顾一下之前的内容吧 Hadoop生态体系知识串讲 Scala编程语言 一、概述 http://scala-lang.org 专门为计算而生的语言,Scala将(Java后者C)面向对象设计和函数式编程结合在一起的简洁的高级编程语言。而函数式编程强调的是通过传递算子&…

统计学习方法 隐马尔可夫模型

文章目录 统计学习方法 隐马尔可夫模型基本概念概率计算问题直接计算法前向算法后向算法前向概率和后向概率 学习问题监督学习算法Baum-Welch 算法E 步M 步参数估计公式算法描述 解码问题近似算法Viterbi 算法 统计学习方法 隐马尔可夫模型 读李航的《统计学习方法》时&#x…

增加并行度后,发现Flink窗口不会计算的问题。

文章目录 前言一、现象二、结论三、解决 前言 窗口没有关闭计算的问题,一直困扰了很久,经过多次验证,确定了问题的根源。 一、现象 Flink使用了window,同时使用了watermark ,并且还设置了较高的并行度。生产是设置了…