自动化过程中有的页面元素加载慢或者需要等待特定条件执行后续步骤,此时需添加等待时间:

1 time.sleep()  固定等待时间,需import time

2 webdriver隐式等待 无需引入包

driver.implicitly_wait(10) 最多等待10s,10s内监测到元素则继续执行,超过10s抛出超时异常。driver生命周期内都有效

3 webdriver显示等待,需引包from selenium.webdriver.support.ui import WebDriverWait

WebDriverWait(driver, 10).until()或until_not() 10s内每500ms监测一次条件是否成立,超过10s超时

下面尝试未设置时间,设置固定时间,设置隐式等待和显示等待四种方式:

1 未设置等待时间,抛出异常未找到元素

#coding:utf-8
#等待时间
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import
dr = webdriver.Firefox()
dr.get("https://www.baidu.com")
dr.find_element_by_id("kw").send_keys("selenium",Keys.ENTER)
#未等待
dr.find_element_by_partial_link_text("Web Browser Automation").click()
dr.quit()

2 设置固定等待时间2s

#coding:utf-8
#等待时间
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
dr = webdriver.Firefox()
dr.get("https://www.baidu.com")
dr.find_element_by_id("kw").send_keys("selenium",Keys.ENTER)
#固定等待时间
time.sleep(2)
dr.find_element_by_partial_link_text("Web Browser Automation").click()
dr.quit()

3 隐式等待

#coding:utf-8
#等待时间
from selenium import webdriver
from selenium.webdriver.common.keys import Keys dr = webdriver.Firefox()
dr.implicitly_wait(10) #设置页面元素的隐式等待时间10s
dr.get("https://www.baidu.com")
dr.find_element_by_id("kw").send_keys("selenium",Keys.ENTER)
dr.find_element_by_partial_link_text("Web Browser Automation").click()
dr.quit()

4 显示等待

#coding:utf-8
#等待时间
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
dr = webdriver.Firefox()
dr.get("https://www.baidu.com")
dr.find_element_by_id("kw").send_keys("selenium",Keys.ENTER)
#显示等待
element = WebDriverWait(dr,10).until(
EC.presence_of_element_located((By.PARTIAL_LINK_TEXT,'Web Browser Automation'))
)
element.click()
dr.quit()

webdriver提供了很多预期条件:

the end!

Selenium入门20 等待时间的更多相关文章

  1. 自动化测试Java一:Selenium入门

    From: https://blog.csdn.net/u013258415/article/details/77750214 Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介 ...

  2. Selenium自动化测试Python一:Selenium入门

    Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介绍Selenium的入门知识以及Selenium的前置知识. 自动化测试的基础 在Selenium的课程以前,我们先回顾一下软件 ...

  3. Selenium 入门到精通系列:六

    Selenium 入门到精通系列 PS:Checkbox方法 例子 HTML: <html> <head> <title>测试页面</title> &l ...

  4. Selenium 入门到精通系列:五

    Selenium 入门到精通系列 PS:显式等待.隐式等待.强制等待方法 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019 ...

  5. Selenium 入门到精通系列:四

    Selenium 入门到精通系列 PS:鼠标右键.鼠标悬停.键盘操作方法 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019 ...

  6. Selenium 入门到精通系列:三

    Selenium 入门到精通系列 PS:Driver_Element 常用方法 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2 ...

  7. Selenium 入门到精通系列:二

    Selenium 入门到精通系列 PS:用户登录 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019-04-23 16:12 ...

  8. Selenium 入门到精通系列:一

    Selenium 入门到精通系列 PS:控制浏览器窗口大小.前进.后退.刷新 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 20 ...

  9. Selenium入门6 操作元素,获取元素属性

    取元素的text,属性get_attribute,标签名tag_name 操作元素:send_keys输入,click点击,submit提交,clear清除输入 状态判断:is_display,is_ ...

随机推荐

  1. 斑马打印机客户端GET和POST,以及后端两种打印方式。

    斑马打印机客户端GET和POST,以及后端两种打印方式. 背景环境:打印机安装在客户端外网.当用户登录时,通过ajax取服务器数据,返回打印机命令,然后客户端通过JS发送给斑马打印机. 1.使用Get ...

  2. python练习六十八:字符串练习

    题目:一个商城在搞抽奖的活动,需要在搞活动的宣传单上印刷优惠卷的验证码,验证码规定20位,生成100个 先来个简单的,20位码中只取数字 import random def num_1(num): l ...

  3. java——io、字节流缓冲区拷贝文件、字节缓冲流

    使用try catch finally关闭文件流: 写入文件: import java.io.*; public class exp{ public static void main(String[] ...

  4. 《mac的git安装手册-2》

    <mac的git安装手册-2> 下载地址 https://git-scm.com/downloads 如果遇到打不开的情况,请在系统偏好设置内——>安全性与隐私下 ——>选择仍 ...

  5. Linux下Tomcat启动关闭命令

    1.首先,进入Tomcat下的bin目录 cd /usr/local/tomcat/bin 2.查看Tomcat是否以关闭 ps -ef|grep tomcat 如果显示以下信息,说明Tomcat还没 ...

  6. java编程--03介绍关于日期常用的计算

    /** * 获取2个日期之间的天数差 * d2-d1 * @return * @throws Exception * @Description: */ public static int getDif ...

  7. java替换word表格2007

    package demo;import java.io.FileOutputStream;import java.util.HashMap;import java.util.Iterator;impo ...

  8. eclipse把局部变量提为全局变量的快捷键是什么

    没有缺省定义的直接快捷键,或者就按Ctrl+1按照melord说的那样做,或者自己在Preference/General/Keys自己对Convert Local Variable to Feild进 ...

  9. my___sublime Text配置

    sublime text 备份 插件下载 http://www.cnblogs.com/457220157-FTD/p/5546545.html https://www.jianshu.com/p/3 ...

  10. golang and mogodb

    1.golang的mogodb包下载:http://gopkg.in/mgo.v2    http://gopkg.in/mgo.v2/bson 2.golang的mongodb操作(mgo):htt ...