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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正点原子嵌入式linux驱动开发——Linux中断

不管是单片机裸机实验还是Linux下的驱动实验,中断都是频繁使用的功能,在裸机中使用中断需要做一大堆的工作,比如配置寄存器,使能IRQ等等。但是Linux内核提供了完善的中断框架,只需要申请中断,然后注册中断处…

Linux CentOS 8(网卡的配置与管理)

Linux CentOS 8(网卡的配置与管理) 目录 一、项目介绍二、命令行三、配置文件四、图形画界面的网卡IP配置4.1 方法一4.2 方法二 一、项目介绍 Linux服务器的网络配置是Linux系统管理的底层建筑,没有网络配置,服务器之间就不能相互…

接口测试 —— jmeter与数据库的操作

在进行接口测试时,数据库查询是常用的一种判断方式,用来确定数据操作是否成功。除了这种场景,数据库里面的数据也是非常好的测试数据,比如作为请求的测试数据输入,那使用jmeter工具如何把数据库的数据依次获取作为参数…

Win10下基于VS2015编译SQLite3源码

一、下载SQLite SQLite SQLite Download Page 下载红框部分的3个文件 提示:这里有个 sglite-autoconf-3420000.tar.gz 是免编译版,想省事就下载这个,但我自己用这个老是编译不过 所以我这里不推荐这个了 二、配置SQLite 打开vs 2015或者其他…

如何处理前端路由懒加载?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

界面组件DevExpress WPF v23.1 - 全面升级文档处理功能

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

DETR原理与代码超详细解读

文章目录 前言一、DETR论文原理1、DETR整体介绍2、DETR论文贡献3、DETR模型框架4、DETR基于二分图匹配的LOSS 二、DETR环境安装1、安装基础环境2、pycocotools安装3、其它环境安装4、环境验证5、训练与推理效果显示 三、数据准备1、coco 数据格式2、修改数据 四、DETR加载数据代…

lnmp架构部署Discuz论坛并配置重定向转发

lnmp架构部署Discuz论坛并配置重定向转发 文章目录 lnmp架构部署Discuz论坛并配置重定向转发环境说明部署Discuz论坛系统下载Discuz论坛系统代码包,官网地址如下:部署Discuz论坛系统步骤:解压安装Discuz源码包配置虚拟主机进入Discuz安装界面…

ArcGIS笔记10_如何创建渔网?

本文目录 前言Step 1 确定渔网的精度单位Step 2 有底图时创建渔网的操作 前言 ArcGIS中的渔网是一个很好用的工具,它可以创建出规规整整的小格子,每个小格子都对应一个标注点,可以将原本散乱的数据规整化,如下图: Ste…

非平稳信号分析和处理、STFT的瞬时频率研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Monocle 3 | 太牛了!单细胞必学R包!~(一)(预处理与降维聚类)

1写在前面 忙碌的一周结束了,终于迎来周末了。🫠 这周的手术真的是做到崩溃,2天的手术都过点了。🫠 真的希望有时间静下来思考一下。🫠 最近的教程可能会陆续写一下Monocle 3,炙手可热啊,欢迎大…

vue集成钉钉单点登录

初始环境判断 判断是否是来自钉钉环境的访问,返回:boolean类型值 window.navigator.userAgent.includes("DingTalk")前端引入vue中钉钉相关的依赖,并获取钉钉的临时授权码 import * as dingtalk from dingtalk-jsapi; let that …

vue 插槽-默认插槽

vue 插槽-默认插槽 **创建 工程: H:\java_work\java_springboot\vue_study ctrl按住不放 右键 悬着 powershell H:\java_work\java_springboot\js_study\Vue2_3入门到实战-配套资料\01-随堂代码素材\day05\准备代码\07-插槽-默认插槽 vue --version vue create…

EDUSRC--简单打穿某985之旅

免责声明: 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

光储并网直流微电网simulink仿真模型,光伏采用mppt实现最大功率输出研究

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Influence on Social media(素论+思维)

传送门:nefu_10-18 - Virtual Judge (vjudge.net) 思路: 每次给n个数,判断每个数的除数总数是否为奇素数。 对于整数:可质因子分解,,除数总数为(i11)*(i21)*(i31).... 若除数总数为奇素数&a…

任务分配问题(回溯法)

算法设计 问题描述 有n(n≥1)个任务需要分配给n个人执行,每个任务只能分配给一个人,每个人只能执行一个任务。 第i个人执行第j个任务的成本是c[i][j](1≤i,j≤n)。求出总成本最小的分配方案 …

【前端】Layui小功能收集整理

目录 1、layui 鼠标悬浮提示文字 2、关闭当前窗口并刷新父页面 3、子iframe关闭/传值/刷新父页面 1、layui 鼠标悬浮提示文字 鼠标放在图标上悬浮显示提示信息&#xff0c;效果图如下 <div style"float:left; line-height:40px">道试题 <i class"l…

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第一部分:通信协议(3)

本心、输入输出、结果 文章目录 系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第一部分&#xff1a;通信协议&#xff08;3&#xff09;前言TCP/IP 封装步骤说明 为什么Nginx被称为“反向”代理&#xff1f;转发代理通常用于&#xff1a;反向代理适用于&#xff1a; 常见…