Selenium中隐式等待和显示等待的区别

发表于:2019-8-12 11:32  作者:我爱学python   来源:简书

字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签: Selenium 自动化测试工具

  Selenium显示等待和隐式等待的区别
  1、selenium的显示等待
  原理:显示等待,就是明确的要等到某个元素的出现或者是某个元素的可点击等条件,等不到,就一直等,除非在规定的时间之内都没找到,那么久跳出Exception
  (简而言之,就是直到元素出现才去操作,如果超时则报异常)
   '''
  遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
  寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
  '''
  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
  driver = webdriver.Chrome()
  driver.get('http://www.baidu')
  element = WebDriverWait(driver,5,0.5).util(
  EC.presence_of_element_located((By.ID,'kw'))
  )
  element.send_keys('hello')
  driver.quit()
  WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)
  driver:浏览器驱动
  timeout:最长超过时间,默认以秒为单位
  poll_frequency:监测的时间间隔,默认为0.5秒
  ignored_exceptions:超时后的异常信息,默认情况下抛NoSuchElementException异常
  WebDriverWait一般有until和until_not方法配合使用
  until(method,message)
  until_not(method ,message)
  2、selenium的隐式等待
  原理:隐式等待,就是在创建driver时,为浏览器对象创建一个等待时间,这个方法是得不到某个元素就等待一段时间,直到拿到某个元素位置。
  注意:在使用隐式等待的时候,实际上浏览器会在你自己设定的时间内部断的刷新页面去寻找我们需要的元素
   '''
  遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
  寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
  '''
  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
  driver = webdriver.Chrome()
  driver.implicity_wait(10)
  driver.get('http://www.baidu')
  implicity_wait()默认参数的单位为妙,本例中设置等待时长为10秒,首先这10秒并非一个固定的等待时间,它并不影响脚本的执行速度。其次,它并不针对页面上的某一元素进行等待。当脚本执行到某个元素定位是,如果元素可以定位,则继续执行,如果元素定位不到,则它将以轮询的方式不断地判断元素是否被定位到。假设在第六秒定位到了元素则继续执行,若直到超出设置的时长10秒还没有定位到元素,则抛出异常。

       上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理

【测试入门必备】细说Sqlserver与第三方工具相互间的关系

评 论

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2019, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道