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

相关推荐
guo_wen_qiang2 小时前
mac中docker desktop服务端开启远程访问
运维·服务器·macos·docker
小五传输3 小时前
消防总队信创改造实践:国产文件传输服务器解决文件传输难题
大数据·运维·安全
云飞云共享云桌面3 小时前
医疗器械设备研发:多人同时操作 SolidWorks,怎样依靠单台服务器替代多工作站
运维·服务器·网络·数据库·制造
T型码农要学习3 小时前
开源项目5|FileBrowser:免费在线文件管理器!随时随地管控服务器文件
运维·服务器·人工智能·开源
朱 欢 庆3 小时前
云服务器附件备份到本机内网服务器
运维·服务器·前端·经验分享
智恒百亿3 小时前
8 卡 RTX 5090 服务器深度实测:256GB 显存能否支撑 70B 模型微调?选型参考
大数据·运维·服务器·人工智能
志栋智能8 小时前
超自动化运维如何支持合规审计?
运维·自动化
小诗懂技术9 小时前
【网络通信UDP】基础 进程间不同主机的通信
运维·服务器·网络
名字还没想好☜9 小时前
Docker 容器安全加固实战:非 root、只读根文件系统、drop capabilities 与最小攻击面
运维·安全·docker·容器·kubernetes
学术 学术 Fun9 小时前
如何用 API 与 Webhook 批量把图表图片转换成 VSDX
python·自动化·api·visio