Selenium3+python自动化007-等待时间
import time
一、强制等待
sleep(秒)
二、显示等待
使WebDriver等待指定元素条件成立时继续执行,否则在达到最大时长时抛出超时异常(TimeoutException)
1. 导包 等待类 --> from selenium.webdriver.support.wait import WebDriverWait
2. 导包 判断条件 --> from selenium.webdriver.support import expected_conditions as EC
(将expected_conditions 通过as关键字起个别名:EC)
3. WebDriverWait(driver, timeout, poll_frequency=0.5)
1). driver:浏览器对象
2). timeout:超时的时长,单位:秒
3). poll_frequency:检测间隔时间,默认为0.5秒
4. 调用方法 until(method):直到..时
1). method:调用EC.presence_of_element_located(element)
element:调用By类方法进行定位
WebDriverWait(driver,30).until(EC.presence_of_element_located((By.ID,'userA')))
# 导selenium包显示等待
from selenium import webdriver
from time import sleep # 访问chromedriver.exe
chromedriver = (r"C:\Users\Administrator.PC-20181218JDBK\AppData\Local\Google\Chrome\Application\chromedriver.exe") # 访问驱动
driver = webdriver.Chrome(chromedriver)
# 实例化浏览器对象
# driver=webdriver.Chrome() # 定义url
url='D:\\pycharm\\lebohtml\\自动化05期-007-Selenium常用定位方法\\html\\注册A.html'
# 实例化浏览器对象
# driver=webdriver.Chrome() # 打开url
driver.get(url) from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By # 调用显式等待
ele=WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID,'userA')))
ele.send_keys('admin') # 第一种写法
# driver.find_element_by_id('userA').send_keys('admin') # 等待3秒
sleep(3) # 关闭浏览器
driver.quit()
显示等待
显示等待的优缺点:
优点:显示等待比隐式等待更节约测试脚本执行时间
缺点:每个操作需要单独判断
三、隐式等待
如果定位某一元素定位失败,那么就会触发隐式等待有效时长,如果在指定时长内加载完毕,则继续执行,否则
抛出NoSuchElementException异常,如果元素在第一次就定位到则不会触发隐式等待时长;
driver.implicitly_wait(timeout);
# 导selenium包
from selenium import webdriver
from time import sleep # 访问chromedriver.exe
chromedriver = (r"C:\Users\Administrator.PC-20181218JDBK\AppData\Local\Google\Chrome\Application\chromedriver.exe") # 访问驱动
driver = webdriver.Chrome(chromedriver)
# 实例化浏览器对象
# driver=webdriver.Chrome() # 定义url
url='D:\\pycharm\\lebohtml\\自动化05期-007-Selenium常用定位方法\\html\\注册A.html'
# 实例化浏览器对象
# driver=webdriver.Chrome() # 打开url
driver.get(url) # 调用饮食等待
driver.implicitly_wait(10)
driver.find_element_by_id('userA').send_keys('admin')
# 等待3秒
sleep(3) # 关闭浏览器
driver.quit()
隐式等待
隐式等待的优缺点:
优点:只需要设置一次,在driver的整个生命周期起作用
缺点:程序会一直等待整个页面加载完成,也就是说浏览器窗口标签栏中不在出现转动的小圆圈,才会继续执行下一步。这样,想要获取的元素即使已经加载完成,也需要等待整个页面加载完成才能继续执行下一步
Selenium3+python自动化007-等待时间的更多相关文章
- selenium3+python自动化50-环境搭建(firefox)
前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodri ...
- selenium3+python自动化50-环境搭建(firefox)【转载】
前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodri ...
- web端自动化——Selenium3+python自动化(3.7版本)-火狐62版本环境搭建
前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium3为基础. 一.selenium简介 Sel ...
- web端自动化——Selenium3+python自动化(3.7版本)-chrome67环境搭建
前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium3为基础. 一.selenium简介 Sel ...
- Selenium3+python自动化010-UnitTest框架简介和单元测试框架使用
一.UnitTest介绍 unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过, ...
- Selenium3+python自动化006+自动化测试概述
自动化测试概述 1.自动化分类: (1)单元测试自动化: 单元测试(Unit):模拟各种异常场景,外部依赖较少,且可以做测试单元到最小的一种测试方法. Java单元测试框架Junit.TestNG; ...
- Selenium3+python自动化006-环境搭建
一.selenium简介 1.Selenium历史 (1)Selenium 1.0: Selenium IDE Selenium Grid Selenium RC(核心功能) Sele ...
- Selenium3+python自动化 -JS处理滚动条
selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候需要借 ...
- Selenium3+python自动化 单选框和复选框
一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了,可以先抽他了. 二.radio和 ...
- Selenium3+python自动化016-多线程
1.进程 什么是进程? 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基 ...
随机推荐
- JavaScript DOMEvent 对象
Event 对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 事件通常与函数结合使用,函数不会在事件发生前被执行! 事件句柄 (Event ...
- open xml 导出excel遇到的问题
我有一个需求:使用ajax 下载excel文件 结果:失败 原因:下载文件是通过浏览器解析二级制流下载的,而ajax返回的是文本 方法: 1.如果你下载不需要参数,那直接写个a标签链接到地址就行 2. ...
- Python_2_daythree2_CyclicStructure
"""Function_1: for-in循环用for循环实现1~100之间的奇数求和 Time: 2020.1.27Author: YaoXie"" ...
- SSL证书基础知识
公司要为一个英国的客户提供由HTTP升级到HTTPS的服务,于是接触查询并学习了相关的SSL证书方面的内容,并整理了一翻. I.SSL证书说明 SSL 证书按大类一般可分为 DV SSL .OV SS ...
- Java连载86-List集合详解
一.List集合 1.List集合存储元素的特点: (1)有序(List集合中存储有下标):存进去是这样的顺序,取出来还是按照这个顺序取出. (2)可重复 2.深入ListJ集合 ArrayLis ...
- selenium等待机制
等待机制 因为你要查找的标签由于网速等原因迟迟没有加载出来,你就直接获取这个标签,很明显是报错,现有的简单粗暴的解决办法就是time.sleep(3),睡几秒,也就是设置线程等待,等这个标签加载出 ...
- JS宣传页项目-综合实战
按照国际惯例先放图 index.html <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- drf 接口文档
coreapi 参考点击 swagger风格接口文档 参考 参考用例 swagger 使用参考
- scrapy框架综合运用 爬取天气预报 + 定时任务
爬取目标网站: http://www.weather.com.cn/ 具体区域天气地址: http://www.weather.com.cn/weather1d/101280601.shtm(深圳) ...
- .net mvc接收对象数组 通过ajax提交
ajax代码 var obj = {}; obj.RoomName = ""; obj.RoomCode = ""; $.ajax({ type: " ...