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-等待时间的更多相关文章

  1. selenium3+python自动化50-环境搭建(firefox)

    前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodri ...

  2. selenium3+python自动化50-环境搭建(firefox)【转载】

    前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodri ...

  3. web端自动化——Selenium3+python自动化(3.7版本)-火狐62版本环境搭建

    前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium3为基础. 一.selenium简介 Sel ...

  4. web端自动化——Selenium3+python自动化(3.7版本)-chrome67环境搭建

    前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium3为基础. 一.selenium简介 Sel ...

  5. Selenium3+python自动化010-UnitTest框架简介和单元测试框架使用

    一.UnitTest介绍 unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过, ...

  6. Selenium3+python自动化006+自动化测试概述

    自动化测试概述 1.自动化分类: (1)单元测试自动化: 单元测试(Unit):模拟各种异常场景,外部依赖较少,且可以做测试单元到最小的一种测试方法. Java单元测试框架Junit.TestNG; ...

  7. Selenium3+python自动化006-环境搭建

    一.selenium简介 1.Selenium历史 (1)Selenium 1.0: Selenium IDE      Selenium Grid    Selenium RC(核心功能) Sele ...

  8. Selenium3+python自动化 -JS处理滚动条

    selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候需要借 ...

  9. Selenium3+python自动化 单选框和复选框

    一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了,可以先抽他了. 二.radio和 ...

  10. Selenium3+python自动化016-多线程

    1.进程 什么是进程? 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基 ...

随机推荐

  1. docker安装mysql/redis

    1.安装mysql容器 #搜索mysql镜像 docker search mysql #拉取mysql镜像 docker pull docker.io/mysql #创建mysql容器,MYSQL_R ...

  2. html网页基本概念

    什么是网页?html文档经过浏览器内核渲染后展示出来的页面(五大主流浏览器及四大内核) html文档文件名后缀是.html,之前存在的.htm是为支持DOM系统(目前织梦还是用.htm文件名结尾文件) ...

  3. (一)LoadRunner安装

    1.下载LR,双击exe安装程序,选择LoadRunner完整安装程序,如下图: 2.点击下一步 3.选择我同意,下一步 4.输入姓名和组织(可以不输入),下一步 5.点击浏览选择要安装的目录,建议使 ...

  4. P5840 [COCI2015]Divljak

    // powered by c++11 // by Isaunoya #include <bits/stdc++.h> #define rep(i, x, y) for (register ...

  5. Navicat Premium 12永久激活

    参考:https://baijiahao.baidu.com/s?id=1644169351506023288&wfr=spider&for=pc 百度网盘:https://pan.b ...

  6. 前端调用本地摄像头实现拍照(vue)

    由于调用摄像头有使用权限,只能在本地运行,线上需用https域名才可以使用. <template> <div class="camera_outer"> & ...

  7. .Net Core通过json文件 配置管理后台导航菜单

    先来看个最终效果图 以前我们配置后台菜单 一般都是把菜单链接, 图标, 以及层级关系 配置到数据库,Core很容易通过json文件来配置导航菜单  而不用存数据库了 先添加个menuconfig.js ...

  8. opencv —— 官方 示例程序

    OpenCV 官方提供的示例程序,具体位于...\opencv\sources\samples\cpp 目录下. ...\opencv\sources\samples\cpp\tutorial_cod ...

  9. UVA-1588

    只用C来写 题目:https://vjudge.net/problem/UVA-1588 #include<stdio.h> #include<string.h> #defin ...

  10. BZOJ#2121. 字符串游戏 [区间dp]

    // powered by c++11 // by Isaunoya #include<bits/stdc++.h> #define rep(i , x , y) for(register ...