selenium的三种等待方式

selenium中一般分为三种等待方式:显示等待、隐式等待、sleep强制等待

1、显示等待(有条件)
程序提前指定等待条件和等待时间,在查找元素时,判断规定时间内是否满足条件,满足则继续执行,不满足或超出时间则抛出异常

from selenium import webdriverfrom selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait #导入显示等待模块
from selenium.webdriver.support import expected_conditions as EC #导入显示等待条件
import timedriver = webdriver.Chrome()'''显示等待'''driver.get('https://www.baidu.com')'driver 是 webdriver对象,最长等待5s,每0.5秒查询对应的元素,until判断是否满足等待条件'
print(time.time())
baidu_submit = WebDriverWait(driver,5,0.5).until(EC.presence_of_element_located((By.ID,'su')))
print(time.time())
# 即将执行的js语句
js = 'alert("检测百度一下按钮成功")'
if baidu_submit:driver.execute_script(js)

2、隐式等待(无条件)
程序提前指定等待时间,在查找元素时,首先会在DOM中查找元素,如果找不到,就继续等待,在等待时间结束之后,再一次查找,如果找到元素则继续执行,没有找到则抛出异常

from selenium import webdriverfrom selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait #导入显示等待模块
from selenium.webdriver.support import expected_conditions as EC #导入显示等待条件
import timedriver = webdriver.Chrome()'''隐式等待'''driver.implicitly_wait(5)
driver.get('https://www.baidu.com')
print(time.time())
baidu_submit = driver.find_element(*(By.ID,'su'))
print(time.time())
# 即将执行的js语句
js = 'alert("检测百度一下按钮成功")'
if baidu_submit:driver.execute_script(js)

3、sleep强制等待
使用time库中的sleep()方法使程序睡眠,强制等待一段时间后继续执行

from selenium import webdriverfrom selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait #导入显示等待模块
from selenium.webdriver.support import expected_conditions as EC #导入显示等待条件
import timedriver = webdriver.Chrome()'''强制等待'''driver.get('https://www.baidu.com')print(time.time())
baidu_submit = driver.find_element(*(By.ID,'su'))
time.sleep(5)
print(time.time())
js = 'alert("检测百度一下按钮成功")'
if baidu_submit:driver.execute_script(js)

selenium中的三种等待方式以及显示等待和隐式等待区别相关推荐

  1. Service的两种启动方式,显示启动和隐式启动

    1.显式启动 Service端: 需要声明android:exported="true",这样别的APP才能访问. <service android:name=" ...

  2. selenium中的三种等待方法

    在selenium中,当我们定位的元素由于网络原因还没加载出来,浏览器找不到我们要定位的元素就会报错.等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,常用的等待方法有: sleep() -- ...

  3. python请输入_python中的三种输入方式

    python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...

  4. Selenium中的三种等待方式

    在写ui自动化的脚本过程中,如果没有加入等待方式,网络不好的时候通常页面元素没有加载出来,脚本就执行操作定位了,很容易找不到元素,这时候,脚本就会出现异常,还有一种页面是异步加载的,也需要用到等待方式 ...

  5. 【转】-【Python】- 【selenium】 -selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())

    -- 学习Python自动化测试的菜鸡,现在是selenium库webdriver的学习时间 [问题] 在获取页面元素的文本的时候,总是获取不到,或者显示为空: [分析] 页面加载不完全: [解决措施 ...

  6. selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())---基于python...

    前一篇文章我们知道了,如何去封装几个简单的Selenium方法到我们自定义的类,这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动那个浏览器.这里我们暂时,支持三 ...

  7. 简单阐述下OC中UIImage三种创建方式~~~

    一. 直接使用imageNamed进行创建 1 UIImage * image = [UIImage imageNamed:@"1.jpg"]; 简单说一下这种方式的优缺点: 优点 ...

  8. asp.net Session在web.config中的三种配置方式——详解

    这段代码就是设置session在web.config中的存储方式. < sessionState mode="Off|InProc|StateServer|SQLServer" ...

  9. ios wifi 定位_iOS 中的三种定位方式

    1.手机基站定位 原理: 每个手机基站都有一个标识符,iPhone或3G iPad可以搜集周围所有收到信号的基站和它们的标识符,通过联网发送到苹果云端服务器,再由服务器根据这些基站的的位置信息查询并计 ...

最新文章

  1. java操作字符串——CSDN博客
  2. 计算机二级晓云是企业人力,全国计算机二级MsOffice真题试卷wore
  3. python class用法理解_带你全面理解python中self的用法
  4. Linux串口分析open
  5. 改变了的Windows MediaPlayer9.0SDK控制集
  6. ppt内嵌excel显示找不到服务器,翻遍互联网都找不到的干货:如何在 PPT 里面演示动态图表?...
  7. Docker-Harbor:推送镜像/登录失败(Error response from daemon: Get https://reg.harbor.com/v2/: dial tcp 192...)
  8. 如何搭建一个谷歌广告系列?
  9. 【Swift】文档分享到其他应用
  10. 初创企业选择阿里云服务器与传统自建服务器的对比与选择
  11. 【机器学习实验二】k-NN算法—改进约会网站以及手写体数字识别
  12. 《数学建模》知识点总结
  13. 搞机攻略(Android Root iOS越狱)
  14. 创建型设计模式(待更新)
  15. 電影嘗試三 webtorrent-desktop在線觀看電影magnet
  16. 统计学原理 离散程度的度量
  17. 期货开户手续费的收取方式是什么?
  18. 扫雷游戏软件测试,软件测试
  19. 数字电路基础(五)算术运算电路
  20. FPGA中模为60的BCD码加法计数器

热门文章

  1. 通过百度语音api实现语音控制五子棋——基于flask
  2. python qt5 增加文本框_PyQt5 文本输入框自动补全 QLineEdit
  3. 阿里云服务器上面关闭tomcat报错
  4. 计算机培训普通话是什么,普通话培训(计算机辅助普通话测试介绍).ppt
  5. 骑行318、 2016.7.29
  6. 【巨杉数据库SequoiaDB】巨杉再获企业级认可,分布式数据库领跑“一亿中流”
  7. AD18无法仿真问题的解决
  8. 环境搭建--谷粒商城笔记一
  9. 千万别删VS之ProgramData目录(血泪教训)
  10. scratch编写游戏:火柴人避开防守投篮