多测师肖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")

相关推荐
技术小齐3 小时前
网络运维学习笔记 016网工初级(HCIA-Datacom与CCNA-EI)PPP点对点协议和PPPoE以太网上的点对点协议(此处只讲华为)
运维·网络·学习
ITPUB-微风4 小时前
Service Mesh在爱奇艺的落地实践:架构、运维与扩展
运维·架构·service_mesh
落幕4 小时前
C语言-进程
linux·运维·服务器
chenbin5204 小时前
Jenkins 自动构建Job
运维·jenkins
java 凯4 小时前
Jenkins插件管理切换国内源地址
运维·jenkins
AI服务老曹4 小时前
运用先进的智能算法和优化模型,进行科学合理调度的智慧园区开源了
运维·人工智能·安全·开源·音视频
sszdzq6 小时前
Docker
运维·docker·容器
book01216 小时前
MySql数据库运维学习笔记
运维·数据库·mysql
唐古乌梁海6 小时前
【pytest】编写自动化测试用例命名规范README
自动化·pytest
bugtraq20217 小时前
XiaoMi Mi5(gemini) 刷入Ubuntu Touch 16.04——安卓手机刷入Linux
linux·运维·ubuntu