http://selenium-python.readthedocs.io/waits.html

有时候为了保证脚步运行的稳定性,需要在脚本中添加等待时间

  • 添加休眠:需要引入time包,选择一个固定的时间的等待。实例:import time .... time.sleep(2)
  • 智能等待:通过添加implicitly_wait(),可以在一个时间范围内智能等待。隐式地等待一个元素被发现或一个命令完成:这个方法每次会话只需要调用一次。实例:browser.implicitly_wait(30),
  • 在webDriver中提供了WebDriverWait类,可以智能的等待页面元素加载完成再执行操作。

    在设置时间内,默认每隔一段时间检测

    检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常,

    WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)

    ——driver:WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程)

    ——timeout:最长超时时间,默认以秒为单位

    ——poll_frequency:休眠时间的间隔(步长)时间,默认为 0.5 秒

    ——ignored_exceptions:超时后的异常信息,默认情况下抛 NoSuchElementException 异常

    实例:

如1:element = WebDriverWait(driver, 10).until(lambda

    x : x.find_element_by_id("id"))

element.send_keys("selenium")

如2:element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id(“Id”))

is_disappeared = WebDriverWait(driver, 30, 1, (ElementNotVisibleException)).until_not(lambda

x: x.find_element_by_id(“someId”).is_displayed())

WebDriverWai()一般由 unit()或 until_not()方法配合使用:

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

判断元素存在与否:

def isPresent(self):

  try:

    driver.find_element_by_xpath(Xpath)

  excep NoSuchElementException,e:

    return False

  else:

    return True

selenium python学习笔记---添加等待时间的更多相关文章

  1. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  2. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  3. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  4. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  5. python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹

    python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...

  6. Python学习笔记(十三)

    Python学习笔记(十三): 模块 包 if name == main 软件目录结构规范 作业-ATM+购物商城程序 1. 模块 1. 模块导入方法 import 语句 import module1 ...

  7. Python学习笔记(十一)

    Python学习笔记(十一): 生成器,迭代器回顾 模块 作业-计算器 1. 生成器,迭代器回顾 1. 列表生成式:[x for x in range(10)] 2. 生成器 (generator o ...

  8. Python学习笔记(八)

    Python学习笔记(八): 复习回顾 递归函数 内置函数 1. 复习回顾 1. 深浅拷贝 2. 集合 应用: 去重 关系操作:交集,并集,差集,对称差集 操作: 定义 s1 = set('alvin ...

  9. 【python学习笔记】10.充电时刻

    [python学习笔记]10.充电时刻 任何python都可以作为模块倒入 *.pyc:平台无关的经过编译的的python文件, 模块在第一次导入到程序中时被执行,包括定义类,函数,变量,执行语句 可 ...

随机推荐

  1. 理解JavaScript模仿块作用域

    1.JS没有块作用域 在C和Java中,一对大括号{}决定一个作用域,比如for循环.在js中,变量可以在函数任何一处定义,并且忽略重复定义.变量初始化之前使用,值永远是undefined. func ...

  2. Cognos创建Oracle数据源错误以及客户端生成加密信息错误

    报加密错误,先删除 signkeypair csk encrytkeypair三个目录错误一: 创建Oracle数据源错误,在cognos connection中创建oracle的数据源,一直测试不成 ...

  3. VS2008+Windows DDK 7的环境配置(二)

    在第一篇的基础上,进行如下的步骤,就可以编译出X64的驱动程序. (建议再另外建一个项目,这样避免混淆,因为x86和x64编译的有些编译选项是不同的.) 1. 安装VS2008 x64 build 组 ...

  4. Jmeter-Maven-Plugin高级应用:Proxy Configuration

    Proxy Configuration Pages 12 Home Adding additional libraries to the classpath Advanced Configuratio ...

  5. matlab:eval用法

    1.自动生成变量 % auto general variabalsb=rand(3,3)for i=1:8    eval(['a_',num2str(i),'=','b(',num2str(i),' ...

  6. Your Customers Do Not Mean What They Say

    Your Customers Do Not Mean What They Say Nate Jackson I'VE NEVER MET A CUSTOMER YET that wasn't all ...

  7. Shell解释器(学习笔记四)

    一.Shell解释器 shell解释器,用户和操作系统内核之间的桥梁 shell介于操作系统内核与用户之间,负责接收用户输入的操作指令(命令),并运行和解释,将需要执行的操作传递给操作系统内核并执行 ...

  8. JDBC一(web基础学习笔记七)

    一.JDBC Java数据库的连接技术(Java DataBase Connectivity),能实现Java程序以各种数据库的访问 由一组使用Java语言编写的类和接口(JDBC API)组成,它j ...

  9. ORACLE NVL 和 NVL2 函数的使用

    NVL函数是一个空值转换函数,在SQL查询中主要用来处理null值.在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值. Oracle在 ...

  10. Deep compression code

    https://github.com/songhan/SqueezeNet-Deep-Compression import sys import os import numpy as np impor ...