zoukankan      html  css  js  c++  java
  • Selenium-设置等待时间

    参考文章链接:http://www.jb51.net/article/92684.htm

    感谢分享

    1.强制等待:通过Python中time包提供的sleep()方法设置固定的等待时间

    2.隐式等待:其实就相当于设置全局的等待,在定位元素时,对所有元素设置超时时间。如果页面元素已经出现,但页面未加载完,其仍会继续等待,直到页面加载完成。隐式地等待一个无素被发现或一个命令完成,这个方法每次会话只需要调用一次,最大设置30秒

    语法:driver.implicitly_wait(30)

    3.显式等待:通过WebDriverWait类和该类的until()方法配合,实现灵活的等待。它的执行过程是,首先设置一个超时时间,程序每隔一段时间查看一次页面,知道until()方法中的条件成立,则执行下一步,否则继续等待,直到超过设置的超时时间,然后抛出异常TimeoutException。

    这个类的路劲 from selenium.webdriver.support.ui import WebDriverWait

    WebDriverWait类实例化时需要传入的参数:driver:WebDriver实例

                          timeout:等待的最长时间

                         【poll_frequency】 :调用until或until_not中的方法的间隔时间,默认是0.5  

                         【ignored_exceptions】:忽略的异常,如果在调用until或until_not的过程中抛出这个元组中的异常,则不中断代码,继续等待,如果抛出的是这个元组外的异常,则中断代码,抛出异常。默认只有                                                                                                                  NoSuchElementException。

    until()方法需要传入的参数:method: 在等待期间,每隔一段时间调用这个传入的方法,直到返回值不是False
                   message: 如果超时,抛出TimeoutException,将message传入异常
     
     
    显式等待实例

    #encoding=utf-8
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    import time
    #from selenium.webdriver.support.wait import WebDriverWait

    browser=webdriver.Chrome()
    browser.get("http://www.baidu.com")
    browser.maximize_window()
    #设置显式等待时间
    wait = WebDriverWait(browser,10)
    #定位到“设置”菜单,此处用到了显示等待“设置”元素
    setting_menu = wait.until(lambda ele : ele.find_element_by_link_text("设置"))

  • 相关阅读:
    一个总成本花费100W的失败项目的小小反省
    从绝望中寻找希望
    一个合格程序员该做的事情——你做好了吗?
    Go to 北京!
    深入浅出Oracle分析函数
    最适合web开发人员使用的速查表
    采用axis2c进行webservice发布的流程4在生成的代码中添加事务处理逻辑
    采用axis2c进行webservice发布的流程1
    rhel6.0及centos6.0 忘记root密码解决办法
    采用axis2c进行webservice发布的流程3通过wsdl文件,自动生成C的服务端代码
  • 原文地址:https://www.cnblogs.com/yan-xiang/p/6617294.html
Copyright © 2011-2022 走看看