Selenium断言的使用,等待

自动化测试常用断言的使用方法(python)

自动化测试中寻找元素并进行操作,如果在元素好找的情况下,相信大家都可以较熟练地编写用例脚本了,但光进行操作可能还不够,有时候也需要对预期结果进行判断。

这里介绍几个常用断言的使用方法,可以一定程度上帮助大家对预期结果进行判断。

这里介绍以下几个断言方法:
assertEqual
assertNotEqual
assertTrue
assertFalse
assertIsNone
assertIsNotNone

(一)assertEqual 和 assertNotEqual
assertEqual:如两个值相等,则pass
assertNotEqual:如两个值不相等,则fail

(二)assertTrue和assertFalse
assertTrue:判断bool值为True,则pass
assertFalse:判断bool值为False,则Pass
下面看下具体使用方法

 

(三)assertIsNone和assertIsNotNone
assertIsNone:不存在,则pass
assertIsNotNone:存在,则pass 

 

 

Selenium有3种类型的等待:强制等待,显式等待和隐式等待。

time.sleep(seconds)

seconds:等待的时间

显式等待

WebDriverWait类是由WebDirver 提供的等待方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。

具体格式如下:

WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
driver :浏览器驱动。
timeout :最长超时时间,默认以秒为单位。
poll_frequency :检测的间隔(步长)时间,默认为0.5S。

WebDriverWait()一般由until()或until_not()方法配合使用,下面是until()和until_not()方法的说明。

* until(method, message=‘’) 调用该方法提供的驱动程序作为一个参数,直到返回值为True。

* until_not(method, message=‘’) 调用该方法提供的驱动程序作为一个参数,直到返回值为False。

隐式等待

WebDriver提供了implicitly_wait()方法来实现隐式等待,默认设置为0。它的用法相对来说要简单得多。

from selenium import webdriver

driver = webdriver.Firefox()

# 设置隐式等待为10秒

driver.implicitly_wait(10)

driver.get("http://www.baidu.com")

driver.find_element_by_id("kw22").send_keys('selenium')

 

implicitly_wait()默认参数的单位为秒,本例中设置等待时长为10秒。

首先这10秒并非一个固定的等待时间,它并不影响脚本的执行速度。

其次,它并不针对页面上的某一元素进行等待。当脚本执行到某个元素定位时,如果元素可以定位,则继续执行;

如果元素定位不到,则它将以轮询的方式不断地判断元素是否被定位到。

假设在第6秒定位到了元素则继续执行,若直到超出设置时长(10秒)还没有定位到元素,则抛出异常。

 

转载于:https://www.cnblogs.com/cyq0528/p/9916741.html

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

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

相关文章

oracle 表复制操作

如下&#xff0c;表a是数据库中以前存在的表&#xff0c;b是预备依据表a执行复制树立的表&#xff1a; 1、只复制表结构的sql create table b as select * from a where 1<>1 2、即复制表结构又复制表中数据的sql create table b as select * from a 3、复制表的制定字段…

linux系统运行iso,linux可以加载iso镜像文件到启动项吗

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼楼主的需求描述不清&#xff0c;不作评述。只说下关于楼上一些吧友提到的grub loopback设备可mount iso并读取其中文件的功能未读过grub1/2的源码&#xff0c;不太了解其实现原理&#xff0c;但从应用上来说&#xff0c;这个设备不…

ESFramework 可复用的通信框架(序)

自从2004年7月开始&#xff0c;就一直从事N层C/S结构的服务端的开发&#xff0c;从最初的熟悉各种Windows Socket API、熟悉完成端口模型&#xff0c;探索高效稳定的服务端通信模型&#xff0c;时至今日&#xff0c;慢慢的积累了一些C/S服务端开发的经验&#xff0c;ESFramewor…

为了兴趣爱好,我该选嵌入式么?

“绝对不要&#xff01;&#xff01;”“绝对不要&#xff01;&#xff01;”“绝对不要&#xff01;&#xff01;”喜欢听结论的同学们&#xff0c;我说的够清楚了吧&#xff1f;接下来&#xff0c;是为那些喜欢问“为什么”的小好奇们解答疑问的环节。为了让道理变得简单明了…

类中构造函数、析构函数与赋值函数的重写

类中构造函数、析构函数与赋值函数的重写 class String {public:String(const char *str NULL); // 普通构造函数String(const String &other); // 拷贝构造函数~String(void); // 析构函数String & operate(const String &other); // 赋值函数private:char *m_d…

Sublime Text3(mac)一些插件和快捷键

Sublime Text3&#xff08;mac&#xff09;一些插件和快捷键 楚简约 关注 2017.02.24 17:02* 字数 1216 阅读 412评论 0喜欢 2下载地址http://www.sublimetext.com/3一、安装Package Control按Ctrl 调出console&#xff0c;粘贴下列安装代码到底部命令行并回车&#xff1a; 重…

linux+内核+环形缓冲,环形缓冲区-模仿linux kfifo【转】

struct kfifo{uint8_t *buffer;uint32_t in; // 输入指针uint32_t out; // 输出指针uint32_t size; // 缓冲区大小&#xff0c;必须为2的次幂}/*判断n是否为2的幂*/static bool is_power_of_2(unsigned int n){return (n ! && ((n & (n - )) ));}/*将数字a向上取整…

【Project3】技术总结

1.quartz 百分百自己会用 2.转载于:https://www.cnblogs.com/mount/archive/2011/11/09/2243265.html

4-7月份规划

1.准备管理系统中计算机应该实践2.学习高等数学二及英语二3.学习VB.Net(估计公司会用VB.Net)&#xff0c;不过可以尽量争取C#4.和红哲讨论一下测试方法.5.对财务系统的测试,加强财务的能力6.购一本练习会计分录的习题集. 7.今后的发展方向&#xff0c;融投资管理 转载于:https:…

没去公司上班的这两天

这周得到通知是居家办公&#xff0c;但因为项目的事&#xff0c;前两天去了公司&#xff0c;今天情况特殊&#xff0c;我需要去合作的公司调试&#xff0c;就没去公司。早上还是9点起来&#xff0c;因为合作的公司离我家很近&#xff0c;可以多休息一会。但早早就睁开了眼&…

Activity的缓存方法

转载地址:http://blog.csdn.net/zhichu_2025/article/details/52047605 有a、b两个activity&#xff0c;当a进入b之后的一段时间&#xff0c;可能系统就把a回收了&#xff0c;这时候按back键&#xff0c;执行的不是a的onStart()方法&#xff0c;而是onCreate()方法&#xff0c…

c# datatable

DataTable dt new DataTable("cart"); //创建表dt.Columns.Add( new DataColumn("number", Type.GetType("System.String"))); //创建列 dt.Columns.Add( new DataColumn("qq", Type.GetType("System.String")));DataR…

linux pdm 查看工具,linux系统监控工具

通过系统监控可以了解系统的运行状态、及时发现异常、分析原因、提早解决&#xff0c;避免系统故障&#xff0c;确保用户对系统的感知度和满意度。IPTV系统一般是通过告警管理、日志管理、信令跟踪、探针、诊断测试来实现对系统的监控。小编为大家分享了linux系统监控工具&…

windows服务器下com6僵尸***删除

服务器被挂马&#xff0c;有一些可以被清除&#xff0c;有一个***被命名为com6.asp&#xff0c;无法被简单删除&#xff0c;网上baidu了一下&#xff0c;只能通过命令行的方式才能删掉&#xff0c;试了半天还是不可以&#xff0c;最后发现***文件还被设置成为了 RSH 属性&#…

USB抓包

安装的时候需要选上安装完之后&#xff0c;会提示让你重启电脑&#xff0c;如果不重启电脑的话也看不到USB的设备。之后可以通过usb.src来过滤自己想dump的设备信息当然&#xff0c;有一个技巧是&#xff0c;你可以先停止读写你的USB&#xff0c;然后再操作你的USB设备&#xf…

波波的个人简历

本人概况 姓名&#xff1a;bobo民族&#xff1a;汉 学历 (学位 )&#xff1a;大专 联系电话&#xff1a; 54103165联系地址&#xff1a;上海 云景路 185弄 10楼 101室 Email Address &#xff1a; caravarnhotmail.com QQ:179326710性别&#xff1a;男 手机&#xff1a; 139179…

Linux记起始和结束时间,Linux历史命令的记住执行时间

本文主要说明平台是Red Hat / CentOS系列系统。当安装完一台Linux后&#xff0c;我们可以把下列事情当作第一件要做的事&#xff1a;让history记录执行命令的时间&#xff1a;上代码export HISTTIMEFORMAT"[%Y-%m-%d %H:%M:%S] "export HISTFILESIEZE1000000export H…

Appium的环境搭建和配置

Appium的环境搭建和配置 一、安装Nodejs 下载nodejs安装包&#xff08;https://nodejs.org/en/download/&#xff09;安装 下载后&#xff0c;双击安装文件&#xff0c;按提示来安装。 测试安装是否成功&#xff1a;运行cmd&#xff0c;输入node –v 二、安装android的SDK 安装…

[转载]C#异步委托的用法 .

每个委托都有三个方法&#xff1a;Invoke、BeginInvoke、EndInvoke。第一个方法是委托指定函数的同步调用&#xff0c;另外两个是异步调用。BeginInvoke方法&#xff0c;调用后立即返回&#xff0c;不等待调用结果。EndInvoke方法&#xff0c;用于检索调用结果。调用BeginInvok…

sqlite3的基本操作

转自&#xff1a;http://blog.chinaunix.net/uid-26833883-id-3239313.html一、数据库基本概念 A.数据(Data)能够输入计算机并能被计算机程序识别和处理的信息集合。B.数据库(Database)数据库是在数据库管理系统管理和控制之下&#xff0c;存放在存储介质上的数据集合。注意&am…