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("设置"))

  • 相关阅读:
    非递归前序遍历,效率高 和 中序遍历代码都相似
    递归-变量-堆栈-透彻理解
    Linux 进程管理
    5linux引导流程解析
    Linux 软件包管理
    vim
    Linux常用命令
    Linux 系统安装
    linux 应用和发展
    贴图、纹理、材质的区别是什么? 还有shader
  • 原文地址:https://www.cnblogs.com/yan-xiang/p/6617294.html
Copyright © 2011-2022 走看看