selenium官文文档阅读总结(day 3)

1.关联型xpath的用法

driver.find_element(By.XPATH,'//a[text()="xxx"]'/ancestor::祖先元素的标签名//……)

2.selenium等待

等待的作用 :在系统运行的过程中,等待网页内容的加载显示。需要耗费的时间,与网络速度、接口的复杂程度、框架设定等因素有关。在做UI自动化的时候,主要是基于系统的流程来实现的自动化,往往是下一步需要依赖上一步的特定条件才能继续执行。在下一步准备执行时,上一步必须已经完成执行,并生成实际结果。考虑到运行的时间问题和执行的步骤问题,在执行自动化测试的时候,是需要设置缓冲时间的。

2.1三大等待

1.强制等待——通过导入time类中的sleep,等待X秒之后,再继续执行后项代码。无所谓当前处于什么阶段,执行了什么操作,后续是否准备就绪。因为无法精准把握等待的时间(无法判定是否达到下一步进行的操作/无法判断页面是否加载),基本不在实际工作中使用。

2.显式等待——专门用于对指定的条件进行等待。在最大的等待时长内,依照查找的时间频率来进行搜索,查找指定的对象。until表示如果找到,则继续下一步,否则报出异常NoSuchElementException。显式等待的优点是精确对某个特定条件进行等待,不会浪费多余任何时间在等待上。如果条件成立,则立即进行下一步,如果不成立则抛出异常。

WebDriverWait(driver,20,0.5).until(ec.presence_of_element_located(locator))

3.隐式等待——设置一个隐形的等待,和一个最长等待时间,在这个时间内如果完成了页面的加载,就进行下一步,否则一直等到该时间结束,再进行下一步。优点是WebDriver整个周期都能起到作用,所以只需设置一次。缺点是必须要等待页面全部加载完成,才可以进行下一步,但有时候特定元素早已加载完成,因此在应用度上不是很灵活。

//设置隐式等待
driver.implicitly_wait(10)

3.自动化关键字驱动与关联

3.1关键字驱动

作用:把一些常用的功能进行简化。把自动化需要用到的功能,按实际业务和技术需要,封装为函数。这些功能函数,我们就称为关键字。通过关键字,做对应的功能动作,从而实现自动化,称之为关键字驱动的自动化。关键字驱动可以简化操作代码,方便自动化维护。

一个百度搜索的关键字调用简单案例:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
def get_url():driver.get('https://www.baidu.com')
def input_usrname():driver.find_element(By.ID,'kw').send_keys('腾讯课堂')
def click_btrn():driver.find_element(By.ID,'su').ckick()
driver = webdriver.Chrome()
get_url()
input_usrname()
click_btrn()
time.sleep(2)
driver.quit()
# 自动化框架:数据驱动;关键字驱动
# 数据驱动——操作和数据分开,是自动化测试的一种思想或理论
# 关键字是实现方式,讲一些重复率高的操作封装为关键字

3.2关联

关联是指上下文衔接调用的需求情况。关联一般分为两步,保存数据、使用数据。

4.断言

判断代码的执行是否符合预期。断言不能解决任何自动化问题,只是为了在某个节点给出明确结果。UI类自动化如果不需要校验数据正确性,就可以用报错作为断言。

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

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

相关文章

申请科技型中小企业的好处有哪些?

科技型中小企业,这是由国家出台的,科技部认定的,对中小型企业的一种荣誉。这种企业是有一定数量的科技人员从事科技研究开发,有了一定成果并转化为高新技术产品或服务,实现可持续发展的中小企业。 申请科技型中小企业有…

【雕爷学编程】 MicroPython动手做(38)——控制触摸屏

MixPY——让爱(AI)触手可及 MixPY布局 主控芯片:K210(64位双核带硬件FPU和卷积加速器的 RISC-V CPU) 显示屏:LCD_2.8寸 320*240分辨率,支持电阻触摸 摄像头:OV2640,200W像素 扬声器&#…

【Golang 接口自动化08】使用标准库httptest完成HTTP请求的Mock测试

目录 前言 http包的HandleFunc函数 http.Request/http.ResponseWriter httptest 定义被测接口 测试代码 测试执行 总结 资料获取方法 前言 Mock是一个做自动化测试永远绕不过去的话题。本文主要介绍使用标准库net/http/httptest完成HTTP请求的Mock的测试方法。 可能有…

【安装】阿里云轻量服务器安装Ubuntu图形化界面(端口号/灰屏问题)

阿里云官网链接 https://help.aliyun.com/zh/simple-application-server/use-cases/use-vnc-to-build-guis-on-ubuntu-18-04-and-20-04 网上搜了很多教程,但是我没在界面看到有vnc连接,后面才发现官网有教程。 其实官网很详细了,不过这里还是…

题解 | #1001.Count# 2023杭电暑期多校6

1001.Count 签到 题目大意 给定 n , m , k n,m,k n,m,k ,构造长度为 n n n 的整数序列,元素大小范围为 a i ∈ [ 1 , m ] a_i\in [1,m] ai​∈[1,m] ,并且需要保证前 k k k 个元素和后 k k k 个元素对应相同 求可以构造出的序列数量 …

Flink Windows(窗口)详解

Windows(窗口) Windows是流计算的核心。Windows将流分成有限大小的“buckets”,我们可以在其上应用聚合计算(ProcessWindowFunction,ReduceFunction,AggregateFunction或FoldFunction)等。在Fl…

【java安全】无Commons-Collections的Shiro550反序列化利用

文章目录 【java安全】无Commons-Collections的Shiro550反序列化利用Shiro550利用的难点CommonsBeanutils1是否可以Shiro中?什么是serialVersionUID?W 无依赖的Shiro反序列化利用链POC 【java安全】无Commons-Collections的Shiro550反序列化利用 Shiro5…

整数拆分——力扣343

文章目录 题目描述法一 动态规划法二 动态规划优化法三 数学 题目描述 法一 动态规划 int integerBreak(int n) {vector<int> dp(n1);for(int i2;i<n;i){int curMax 0;for(int j1;j<i;j){curMax max(curMax, max(j*(i-j), j*dp[i-j]));}dp[i] curMax;} return d…

AI赋能转型升级 助力打造“数智辽宁”——首次大模型研讨沙龙在沈成功举行

当前&#xff0c;以“ChatGPT”为代表的大模型正在引领新一轮全球人工智能技术发展浪潮&#xff0c;推动人工智能从以专用小模型定制训练为主的“手工作坊时代”&#xff0c;迈入以通用大模型预训练为主的“工业化时代”&#xff0c;正不断加速实体经济智能化升级&#xff0c;深…

MyBatis的三级缓存

MyBatis的三级缓存 一、什么是MyBatis的三级缓存&#xff1f; MyBatis的三级缓存指的是一级缓存、二级缓存和三级缓存。 缓存是一种提高数据读取性能的技术&#xff0c;在MyBatis中&#xff0c;一级缓存指的是Session缓存&#xff0c;二级缓存指的是Mapper级的缓存&#xff…

变量方法常用命名

文件路径&#xff1a; \src\locales\lang\zh-CN 在多语言应用程序中&#xff0c;通常会将不同语言的翻译文本存储在不同的文件中&#xff0c;这样可以方便地管理和维护多个语言版本。locales目录一般用于存放所有的语言文件&#xff0c;lang目录则用于存放特定语言的文件。 具体…

C语言编程技巧 全局变量在多个c文件中公用的方法

在使用C语言编写程序时&#xff0c;经常会遇到这样的情况&#xff1a;我们希望在头文件中定义一个全局变量&#xff0c;并将其包含在两个不同的C文件中&#xff0c;以便这个全局变量可以在这两个文件中共享。举个例子&#xff0c;假设项目文件夹"project"下有三个文件…

量子机器学习解决方案新鲜出炉!Rigetti和ADIALab签署合作

​ &#xff08;图片来源&#xff1a;网络&#xff09; 近日&#xff0c;美国全栈量子经典计算的先驱Rigetti Computing宣布与阿拉伯联合酋长国的ADIA Lab签署了合作协议&#xff0c;双方将共同设计、构建、运行和优化量子计算解决方案&#xff0c;旨在解决概率分布分类问题&am…

spring通过文件属性注入bean和基于xml的bean的自动装配以及spring-eel表达式的使用加代码合集

&#x1f600;前言 本章是spring基于XML 配置bean系类中第7篇讲解spring通过文件属性注入bean和基于xml的bean的自动装配以及spring-eel表达式的使用加代码合集 &#x1f3e0;个人主页&#xff1a;尘觉主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是尘觉&…

亚信科技AntDB数据库专家出席数据库标准研讨会并参与研讨

2023年7月12日&#xff0c;全国信息技术标准化技术委员会数据库标准工作组&#xff08;SAC/TC28/WG31&#xff09;秘书处组织召开数据库标准研讨会&#xff0c;会议围绕数据库标准工作组2023年上半年开展的标准编制情况进行交流。亚信科技AntDB数据库相关专家出席会议&#xff…

常用Web安全工具

Nessus 号称是世界上最流行的漏洞扫描程序&#xff0c;全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务&#xff0c;并随时更新其漏洞数据库。Kali Linux预装了许多渗透测试软件&#xff0c;包括nmap 、Wireshark 、John the Ripper&#xff0c;以及Airc…

echarts图表渐变色 + 每个柱子不同颜色设置

echarts柱状图&#xff0c;默认所有柱子都是同一个颜色&#xff0c;显示效果差强人意&#xff0c;本文介绍如果修改成为每个柱子添加不同的颜色&#xff0c;以及如何添加渐变色&#xff0c;丰富图表的显示鲜果。先看效果&#xff1a; 每个柱子颜色不同 每个柱子都有自己的渐变…

Redis的缓存穿透、缓存击穿和缓存雪崩

目录 一、解释说明 二、缓存穿透 1. 什么是缓存穿透&#xff1f; 2. 常见的两种解决方案 &#xff08;1&#xff09;缓存空对象 &#xff08;2&#xff09;布隆过滤 3. 编码解决商品查询的缓存穿透问题 三、缓存雪崩 1. 什么是缓存雪崩&#xff1f; 2. 缓存雪崩解决方…

力扣 416. 分割等和子集

题目来源&#xff1a;https://leetcode.cn/problems/partition-equal-subset-sum/description/ C题解&#xff08;思路来源代码随想录&#xff09; &#xff1a; 背包问题有多种背包方式&#xff0c;常见的有&#xff1a;01背包、完全背包、多重背包、分组背包和混合背包等等。…

Prometheus实现系统监控报警邮件

Prometheus实现系统监控报警邮件 简介 Prometheus将数据采集和报警分成了两个模块。报警规则配置在Prometheus Servers上&#xff0c; 然后发送报警信息到AlertManger&#xff0c;然后我们的AlertManager就来管理这些报警信息&#xff0c;聚合报警信息过后通过email、PagerDu…