很多情况下写代码时不加等待时间容易出现定位不到元素的情况,可见等待时间的重要性,下面介绍一下selenium的三种等待方式

1.强制等待----sleep()

不管浏览器是否加载完了,程序都得等待所设置的时间,设置的时间一到,则继续执行下面的代码。

from selenium import webdriver

from time import sleep

dr=webdriver.Chrome()

dr.get("https://www.so.com")

sleep(2)  #强制等待2秒再进行下一步

dr.find_element(By.ID,"input").send_keys("selenium")

2.隐性等待----implicitly_wait()

隐性等待是设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步。如果在设置的时间内元素依然没有被加载出来,那就会报错。隐性等待对整个driver的周期都起作用,所以只要设置一次即可,不必像sleep一样每一步设置一次。

from selenium import webdriver

from selenium.webdriver.support.ui import WebDriverWait

dr=webdriver.Chrome()

dr.implicitly_wait(20) #设置等待20s

dr.get("https://www.so.com")

3.显性等待----WebDriverWait

显性等待时间可以通过WebDriverWait 和util来决定,如果该元素在设置的等待时间以内出现就不再等待,然后执行下一步,如果在设置的时间内没有加载出则会报TimeoutException错误。

from selenium import webdriver

    from selenium.webdriver.support.ui import WebDriverWait

dr=webdriver.Chrome()

dr.implicitly_wait(20) #设置等待20s

dr.get("https://www.so.com")

element = WebDriverWait(dr,30).until(lambda dr:dr.find_element(By.ID,"input")) #设置显性等待时间

element.send_keys("selenium自动化")

*上述例子用到了lambda函数,简单介绍一下lambda是一个匿名函数,不需要定义的函数,只做简单运算,并返回值,没有复杂的函数体。

转载于:https://www.cnblogs.com/xyx-001/p/9518215.html

Selenuim 三种等待方式解读相关推荐

  1. Python selenium —— 一定要会用selenium的等待,三种等待方式解读

    发现太多人不会用等待了,博主今天实在是忍不住要给大家讲讲等待的必要性. 很多人在群里问,这个下拉框定位不到.那个弹出框定位不到-各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加 ...

  2. python的等待代码是什么_Python selenium 三种等待方式详解

    1.目的背景 解决问题:下拉框定位不到.弹框定位不到-各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待. 原因:代码运行速度快,而浏览器加载渲染速度慢 解决办法:加等待,目 ...

  3. 【App自动化测试】(八)三种等待方式——强制等待、隐式等待、显示等待

    目录 1. 为什么要添加等待? 2. 三种等待方式 3. 强制(直接)等待 4. 隐式等待 4.1 隐式等待说明 4.2 隐式等待无法解决的问题 5. 显式等待 5.1 为什么要使用显示等待机制? 5 ...

  4. selenium中的三种等待方式以及显示等待和隐式等待区别

    selenium的三种等待方式 selenium中一般分为三种等待方式:显示等待.隐式等待.sleep强制等待 1.显示等待(有条件) 程序提前指定等待条件和等待时间,在查找元素时,判断规定时间内是否 ...

  5. Python selenium —— 一定要会用selenium的等待,三种等待方式解

    转自  http://lib.csdn.net/article/48/50937?knId=1313 Python selenium -- 一定要会用selenium的等待,三种等待方式解 发现太多人 ...

  6. selenium中三大切换 三种等待方式

    前言 ui自动化测试,就是通过代码模拟手工操作,通过点击.拖拽.输入等方式,进行浏览器页面的操作,我们常用的web自动化测试工具,是selenium:同时在我们日常操作中,由于需要创建链接,加载页面, ...

  7. selenium中三种等待方式:sleep,implicitly_wait,WebDriverWait

    三种等待方式:sleep 强制等待, sleep,设置等待多长时间,就要等待多长时间.等待完成后,才会继续下一步: from selenium import webdriver # 导入sleep f ...

  8. python三种等待方式_Python selenium 三种等待方式详解

    本文摘自:http://blog.csdn.net/huilan_same/article/details/52544521 发现太多人不会用等待了,博主今天实在是忍不住要给大家讲讲等待的必要性. 很 ...

  9. 三种等待方式:强制等待、显式等待、隐式等待

    我们在使用selenium的时候,会遇到一种定位不到的情况,因为web页面有一个加载的过程 当页面元素未出现时,去定位肯定是定位不到的,所以我们需要用到了'等待',该如何使用等待呢,让我们一起来探讨一 ...

最新文章

  1. vb破解万能断点816c24
  2. JAX-RS 方式的 RESTful Web Service 开发
  3. 笔记本8G+256G固态免费送,吃鸡不吃力,包邮!
  4. Vue -- 指令【学习笔记】(持续更新)
  5. IDEA Maven 聚合项目(多模块)搭建--最精简
  6. 对棋盘完美覆盖问题证明过程的质疑及其解决
  7. Task/Parallel实现异步多线程
  8. CF - 1214D
  9. js分页工具分页功能实现
  10. C++工业设备日志记录系统
  11. NRF24L01故障排查
  12. 敏捷项目管理术语大全
  13. uniapp开发APP/小程序 微信一键登陆
  14. JZOJ4722. 跳楼机
  15. 这些跳槽理由千万不能说!
  16. tp5 分页之无刷新页面渲染
  17. 攻防世界web新手区合集
  18. 明德扬FPGA开发板XILINX-K7核心板Kintex7 XC7K325 410T工业级
  19. 推荐系统入门(二):协同过滤(附代码)
  20. 优质免费在线学习网站

热门文章

  1. java操作mysql数据库实例_jdbc操作mysql数据库实例
  2. java线程入门_java多线程快速入门(一)
  3. 利用kaggle训练模型
  4. python中的字符串文本必须用什么括起来_Python标准库---18、文本处理服务:string 常见的字符串操作...
  5. 华为nova7保密柜_华为nova8系列发布 Vlog视频旗舰3299元起
  6. 【最新】2021年自然语言处理 (NLP) 算法学习路线!
  7. 基于Bert-NER构建特定领域中文信息抽取框架
  8. 归并有效排序算法matlab,科学网—[用MATLAB写算法]之排序算法2)归并排序merge sort - 徐勇刚的博文...
  9. loss函数之MarginRankingLoss
  10. C#动态调用WCF接口,两种方式任你选。