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

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. 统计Metric

    package com.example.mail; import org.apache.storm.Config; import org.apache.storm.LocalCluster; impo ...

  2. layui的表单功能

    作为一个phper还是非常喜欢这个插件的~虽然在vue的群里面说这个插件好被人怼过..废话不多说, 这次使用到的是layui的表单功能.上次的日历忘记做笔记了非常可惜,大部分其实跟着文档撸就可以,这次 ...

  3. testlink数据库访问密码修改

    testlink重启后数据库连接不上将会报错 错误:1045 - Access denied for user 'my_db '@'localhost' (using password: YES) 怎 ...

  4. linux下FTP服务搭建(1)

    1.FTP介绍: FTP (File Transfer Protocol,文件传输协议)主要用来文件传输,尤其适用于大文件传输,提供上传下载功能 FTP官方网站:https://filezilla-p ...

  5. /var 目录下文件系统

    /var    :日志文件/var/log:各种系统日志存放地*/var/log/message :系统信息默认日志文件 (非常重要)按周自动轮循/var/log/secure  :记录登入系统信息文 ...

  6. g++ -I(大写i) 与-L(大写l)-l(小写l) 的作用与学习

    linux 下 g++编译程序时,-I(大写i) 与-L(大写l)-l(小写l) 的作用 作为一个linux入门级使用者,gcc/g++ 的简单操作已经用过多次, 但是有时稍微复杂一点的程序就会使用到 ...

  7. suau 公约公倍

    8619 公约公倍 时间限制:500MS  内存限制:1000K 提交次数:475 通过次数:108 题型: 编程题   语言: G++;GCC Description  给定六个正整数a,b,c,d ...

  8. CAD安装失败怎样卸载CAD 2016?错误提示某些产品无法安装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  9. (转)rsync数据备份方案

    rsync数据备份方案 原文:http://blog.51cto.com/irow10/1826458 最近整理了下公司的数据备份情况.以下是部分操作的过程 1.rsync数据备份,具体备份过程就不详 ...

  10. VM虚拟机安装centos7

    一 安装centos7 下面地址下载基础版 CentOS-7-x86_64-Minimal-1810.iso 镜像  918M http://isoredirect.centos.org/centos ...