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

2023-10-20 09:02

本文主要是介绍多测师肖sir_高级金牌讲师___ui自动化之selenium001,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、认识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
import  time
dx=webdriver.Chrome() #创建一个 webdriver对象
dx.get("https://www.baidu.com/") #通过对象打开网址
time.sleep(3)
dx.get("https://www.jd.com/") #通过对象打开网址

案例2:格式:d.execute_script(“window.open(‘https://www.jd.com/’)”)
重开一个窗口

from  selenium import  webdriver
import  time
dx=webdriver.Chrome() #创建一个 webdriver对象
dx.get("https://www.baidu.com/") #通过对象打开网址
time.sleep(3)
dx.get("https://www.jd.com/") #通过对象打开网址
# dx.execute_script("window.open('https://www.jd.com/')") #重开窗口

=========================================================
休眠:
1.强制等待 sleep(xx) #等待时间是固定
定义:强制等待我们可以通过time模块中time.sleep()来实现,不管浏览器是否加载完成,只要程序执行到等待设定的时间,就会等待,时间一到,就继续执行后面的程序了。
2.隐性等待 implicitly_wait(xx) # #比sleep更节省时间
定义:隐式等待可以通过implicitly_wait()方法实现,默认等待的时间为0秒,隐式等待可以设置一个时间间隔,网页加载完成,就立即执行下一步程序,不然就等到时间截止,然后执行下一步程序,所以implicitly_wait()比time.sleep()应用起来更加方便。

3.显性等待 WebDriverWait(了解)
定义:显式等待是代码中等待一定条件发生后再进一步执行你的代码,通过webDriverWait结合ExpectedCondition实现。实现的方法:程序每隔几秒判断一下设定的条件,如果条件成立,则执行下一步,否则就继续等待,直到超过设置的最长时间,然后抛出异常,
在这里插入图片描述

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

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")

这篇关于多测师肖sir_高级金牌讲师___ui自动化之selenium001的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/246090

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

WinForm跨线程访问UI及UI卡死的解决方案

《WinForm跨线程访问UI及UI卡死的解决方案》在WinForm开发过程中,跨线程访问UI控件和界面卡死是常见的技术难题,由于Windows窗体应用程序的UI控件默认只能在主线程(UI线程)上操作... 目录前言正文案例1:直接线程操作(无UI访问)案例2:BeginInvoke访问UI(错误用法)案例

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

Python自动化批量重命名与整理文件系统

《Python自动化批量重命名与整理文件系统》这篇文章主要为大家详细介绍了如何使用Python实现一个强大的文件批量重命名与整理工具,帮助开发者自动化这一繁琐过程,有需要的小伙伴可以了解下... 目录简介环境准备项目功能概述代码详细解析1. 导入必要的库2. 配置参数设置3. 创建日志系统4. 安全文件名处

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Java中的for循环高级用法

《Java中的for循环高级用法》本文系统解析Java中传统、增强型for循环、StreamAPI及并行流的实现原理与性能差异,并通过大量代码示例展示实际开发中的最佳实践,感兴趣的朋友一起看看吧... 目录前言一、基础篇:传统for循环1.1 标准语法结构1.2 典型应用场景二、进阶篇:增强型for循环2.

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2