AJAX,即“Asynchronous Javascript And  XML”。可以实现网页的异步更新。也就是在不重新加载整个网页的情况下,对网页的某部分进行更新。
现在大多数网站都使用AJAX技术,这使得网页加载完成之后有些元素还没有出现。为了解决这个问题,保证脚本运行的稳定性,selenium使用了等待功能。
Selenium的等待分为两种:显示等待、隐式等待。

添加休眠

 

import time

time.sleep(0.3)

隐式等待

 
设置一次即可,作用于WebDriver的整个生命周期。
元素如果找不到都会默认等待30s,直到找到该元素。也就是查找元素时会有一个30s的等待buffer。
driver.implicitly_wait(30)
 

显式等待

 
WebDriverWait(driver,wait_time).until(contion)
 
显示等待会让WebDriver保持等待,直到特定的条件出现。
显式等待默认会每隔500毫秒扫描一次页面变化直到特定条件满足或者wait_time用尽。
在wait_time时间内,如果找到元素则返回该元素,否则raise TimeoutException。
 
#10s内每隔500毫秒扫描一次页面变化,找到id 为myDynamicElement的元素
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "myDynamicElement")))

expected_conditions的常用方法:

title_is
title_contains
presence_of_element_located
visibility_of_element_located
visibility_of
presence_of_all_elements_located
text_to_be_present_in_element
text_to_be_present_in_element_value
frame_to_be_available_and_switch_to_it
invisibility_of_element_located
element_to_be_clickable - it is Displayed and Enabled.
staleness_of
element_to_be_selected
element_located_to_be_selected
element_selection_state_to_be
element_located_selection_state_to_be
alert_is_present
 

selenium webdriver python 等待的更多相关文章

  1. 【转】Selenium WebDriver + Python 环境

    转自:http://www.myext.cn/webkf/a_11878.html 1. 下载必要工具及安装包 1.1 [Python开发环境] 下载并安装Python 2.7.x版本 下载地址:ht ...

  2. Selenium WebDriver + Python 环境配置

    1.   下载必要工具及安装包 1.1.[Python开发环境] 下载并安装Python 2.7.x版本(当前支持2.x版本,不要下载最新的3.X的版本因为python3并非完全兼容python2) ...

  3. selenium webdriver (python)

    selenium webdriver (python) 第一版PDF Posted on 2013-08-30 22:59 虫师 阅读(221) 评论(0) 编辑 收藏 前言 如果你是一位有pytho ...

  4. selenium webdriver (python) 第二版

    前言 对于大多软件测试人员来讲缺乏编程经验(指项目开发经验,大学的C 语言算很基础的编程知识)一直是难以逾越的鸿沟,并不是说测试比开发人员智商低,是国内的大多测试岗位是功能测试为主,在工作时间中,我们 ...

  5. selenium webdriver (python) 第三版

    感谢 感谢购买第二版的同学,谢谢你们对本人劳动成果的支持!也正是你们时常问我还出不出第三版了,也是你们的鼓励,让我继续学习整理本文档. 感谢乙醇前辈,第二版的文档是放在他的淘宝网站上卖的,感谢他的帮忙 ...

  6. selenium webdriver (python)2

    selenium webdriver (python) 第二版 前言  对于大多软件测试人员来讲缺乏编程经验(指项目开发经验,大学的C 语言算很基础的编程知识)一直是难以逾越的鸿沟,并不是说测试比开发 ...

  7. Selenium WebDriver + python 自动化测试框架

    目标 组内任何人都可以进行自动化测试用例的编写 完全分离测试用例和自动化测试代码,就像写手工测试用例一下,编写excel格式的测试用例,包括步骤.检查点,然后执行自动化工程,即可执行功能自动化测试用例 ...

  8. selenium webdriver (python) 第一版PDF

    前言 如果你是一位有python语言基础的同学,又想通过python+ selenium去实施自动化,那么你非常幸运的找到了这份文档,我也非常荣幸能为你的自动化学习之路带来一丝帮助. 其实,我在sel ...

  9. selenium webdriver (python)的基本用法一

    阅在线 AIP 文档:http://selenium.googlecode.com/git/docs/api/py/index.html目录一.selenium+python 环境搭建........ ...

随机推荐

  1. 检测网页地址有效性java代码

    package com.inspur.linkcheck; import java.io.IOException; import java.net.HttpURLConnection; import ...

  2. Android SDK开发包国内下载地址

    不知道是因为最近kaihui还是怎么的,打开android sdk官方网站特别的慢,想下载最新版本的platform几乎变成不可能完成的任务,不知道为什么Google不像Apache那样在各国设立镜像 ...

  3. linux云计算集群架构学习笔记:系统文件的目录结构

    文件的基本管理和XFS文件系统备份恢复 1.1  Linux系统目录结构,相对/绝对路径. 1.2  创建/复制/删除文件,rm -rf / 意外事故 1.3 查看文件内容 1.4 xfs文件系统的备 ...

  4. leetcode面试准备: CountPrimes

    1 题目 Description: Count the number of prime numbers less than a non-negative number, n. 接口:public in ...

  5. PPTPD服务端搭建

    http://www.360doc.com/content/14/0304/09/15165033_357558764.shtml . apt-get update; apt-get install ...

  6. String.split()分割字符串

    string.split(s[, sep[, maxsplit]]) Return a list of the words of the string s. If the optional secon ...

  7. centos7 docker安装

    Docker分为社区版CE和企业版EE. 社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施.容器.插件等 社区版按照stable和edge两种 ...

  8. 连续子数组最大和(python)

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

  9. UWP ListView 绑定 单击 选中项 颜色

    refer: https://www.cnblogs.com/lonelyxmas/p/7650259.html using System; using System.Collections.Gene ...

  10. 为什么你的session不见了

    一:现象 有小伙伴写了下面一段代码,然后发现,随着每次关闭浏览器,count的值重新开始计数了,如下: protected void doGet(HttpServletRequest request, ...