selenium三种等待时间之显示等待
显示等待
显示等待,对指定元素进行等待的一种等待方式。通过设置最大等待时间、检查频率,对页面的元素来进行等待,一旦找到元素,则停止等待,进入后续步骤。
它主要的意思就是:程序每隔x秒看一眼,如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException异常。
缺点:
1、使用相对比较复杂;
2、和强制等待类似,每一行等待只执行一次,如果要进行多个元素的等待,则需要多次写入。
优点:
等待判断准确,不会浪费多余的等待时间,在用例中使用,可以提高执行效率。
WebDriverWait类
显示等待使用思路:
1、导包:from selenium.webdriver.support.wait import WebDriverWait
2、对WebDriverWait类进行实例对象操作
WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)
driver:浏览器驱动
timeout:最大等待时间
poll_frequency:检测的间隔时间,默认0.5
ignored_exceptions:超时后的异常信息,默认抛出NoSuchElementException
3、调用until()和until_not方法来等待元素
def until(self,method,message=’’)
含义:直到条件成立返回为真,等待结束。如果超时,抛出TimeoutException,将message传入异常。
参数:
1、method:在等待期间,每隔一段时间调用这个传入的方法,直到返回值不是False,一般使用lambda匿名函数;
2、message:提示信息,出现异常时会将这个信息输出在控制台
def until_not(self,method,message=’’)
含义:与until相反,until是当某元素出现或什么条件成立则继续执行,until_not是当某元素消失或什么条件不成立则继续执行,参数也相同。
示例:打开百度,输入北京,点击搜索,点击第一个查询结果。使用显示等待
# -*- coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
import time# 打开chrome浏览器
driver = webdriver.Chrome()
driver.implicitly_wait(10)
# 打开百度首页
driver.get('https://www.baidu.com/')
# 输入北京
driver.find_element_by_id('kw').send_keys('北京')
# 点击百度一下
driver.find_element_by_id('su').click()
# 点击第一个查询结果
# 定位到第一个查询结果的元素
ele = driver.find_element_by_xpath('//*[@id="1"]/div/div/h3/a')
# 实例WebDriverWait对象
wait = WebDriverWait(driver, 20)
# 调用until()方法, 判断某个元素是否存在页面上,结果为True,则结束等待,反之继续等待
wait.until(lambda x:ele.is_displayed())
# 对找到的元素执行点击操作
ele.click()
time.sleep(2)
# 关闭浏览器
driver.quit()
selenium三种等待时间之显示等待相关推荐
- selenium三种等待时间之强制等待
等待的作用: 在实际自动化实现过程中,都会添加等待来完善自动化测试的代码.自动化测试,是交由机器来执行的一种测试手段,用于提升测试效率,意味着每一次的自动化测试都需要有非常高的成功率,才可以达到提升效 ...
- selenium三种等待时间之隐式等待
隐式等待: 其设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间结束,然后执行下一步操作. 使用方法:implicity_wait(10),在x时间内,页面加载完成, ...
- python三种等待方式_Python selenium 三种等待方式详解
本文摘自:http://blog.csdn.net/huilan_same/article/details/52544521 发现太多人不会用等待了,博主今天实在是忍不住要给大家讲讲等待的必要性. 很 ...
- 三种等待时间原理及场景
让我们来探讨探讨三种等待时间原理及场景 在使用web端自动化实施的过程中,常常会遇到页面还没加载完毕,脚本已经执行了,导致用例执行失败,为了确保页面加载完毕后再执行下一个脚本,我们通常采用设置等待的时 ...
- selenium 三种断言以及异常类型
selenium 三种断言以及异常类型 参考文章: (1)selenium 三种断言以及异常类型 (2)https://www.cnblogs.com/xiaobucainiao/p/6186826. ...
- selenium的三种等待时间
//隐式等待(20秒以内没哥一段时间就会去找元素,如果没找大也不会报错,过了20s才会报错)//driver.manage().timeouts().implicitlyWait(20, TimeUn ...
- python的等待代码是什么_Python selenium 三种等待方式详解
1.目的背景 解决问题:下拉框定位不到.弹框定位不到-各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待. 原因:代码运行速度快,而浏览器加载渲染速度慢 解决办法:加等待,目 ...
- Python 自动化中三种等待时间的详解~
自动化测试,是交由机器来执行的一种测试手段,用于提升测试效率,意味着每一次的自动化测试都需要有非常高的成功率,才可以达到提升效率的作用. 在自动化测试中,其实就是通过代码,来执行测试的流程,也就意味着 ...
- python selenium 三种等待方式详解
引言: 当你觉得你的定位没有问题,但是却直接报了元素不可见,那你就可以考虑是不是因为程序运行太快或者页面加载太慢造成了元素不可见,那就必须要加等待了,等待元素可见再继续运行程序: 正文: 1.强制等待 ...
最新文章
- python凹多边形分割_使用Opencv python从Image中裁剪凹面多边形
- c语言数码管数字时钟程序,数码管显示模拟8位时钟C语言程序设计
- 删除机器人 异星工厂_10个视频,它们是国内智能工厂的标杆
- CString GetBuffer() GetString()
- (转)DOS批处理的字符串功能
- sklearn自学指南(part48)--截断奇异值分解和潜在语义分析
- IT学习--学习不一定要用在现实工作中
- 【.NET Core项目实战-统一认证平台】第八章 授权篇-IdentityServer4源码分析
- python基础——错误处理
- 【CodeForces - 1105C】Ayoub and Lost Array(线性计数dp)
- 解封装(七):av_read_frame读取帧数据函数分析和产生的空间问题分析,以及AVPacket分析
- yum install php72w,yum 安装 php72w-pecl-imagick 报错
- 电影'社交网络'获金球奖最佳影片,最佳编剧,最佳导演,最佳配乐奖
- 瑞典驻华参赞:智慧城市建设提升为国家战略
- 二分查找算法(Java版)
- 评价类问题中的模糊综合评价法
- linux gvim字体大小配置,Gvim 字体大小设置
- ecshop 首页调用多个促销,显示到计时
- Cron每年1月5号 4月5号 7月5号 10月5号 00:00:00执行任务
- 多维正态分布与图形识别