多测师肖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 selenium3.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

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

调试是否安装:

python 复制代码
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:在同一个窗口,后一格浏览区覆盖前一个浏览器

python 复制代码
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/')")

重开一个窗口

python 复制代码
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")

相关推荐
草莓熊Lotso29 分钟前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
历程里程碑33 分钟前
Linux22 文件系统
linux·运维·c语言·开发语言·数据结构·c++·算法
七夜zippoe9 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
Fcy64810 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满10 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠10 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Harvey90311 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
御承扬11 小时前
鸿蒙NDK UI之文本自定义样式
ui·华为·harmonyos·鸿蒙ndk ui
珠海西格电力科技12 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀12 小时前
Linux环境变量
linux·运维·服务器