zoukankan      html  css  js  c++  java
  • Selenium 应用 WebDriverWait 和 expected_conditions(待验证)

    收藏在我的收藏看不到,只能copy了,转载至http://www.cnblogs.com/yicaifeitian/p/4749149.html

    哈哈,我始终相信贴出来总会有人看。WebDriverWait 类位于selenium.webdriver.support.ui下面的例子很简单,

    Example:
    from selenium.webdriver.support.ui import WebDriverWait 
    
    element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id("someId")) 
    
    is_disappeared = WebDriverWait(driver, 30, 1, (ElementNotVisibleException)). 
    
                     until_not(lambda x: x.find_element_by_id("someId").is_displayed())
    

     

    WebDriverWait 里面主要有两个方法,一个是until和until_not

    那么我们可以这样用:
    WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id("某个按钮")).click()

      意思就是在10秒内等待某个按钮被定位到,咱们再去点击。就是每隔0.5秒内调用一下until里面的表达式或者方法函数,要么10秒内表达式执行成功,要么10秒后抛出超时异常。

    哈哈,我相信这个py文件大家一看就能懂。这无非就是一些预期条件。

    结合上面的WebDriverWait,我们可以这么用:

    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    '''
    10秒钟等待浏览器弹出的对话框,如果出现,就点击确定按钮
    '''
    WebDriverWait(chromedriver,10).until(EC.alert_is_present()).accept()
    

     我们的自动化脚本跑得快慢或者出现异常,很大程度上取决于我们设定的等待时间,如果你还是习惯于time.sleep(5)这种方式的话,这将会浪费很多时间。

  • 相关阅读:
    iOS网络开发之AFNetworking
    自定义博客园样式
    win 7 和 winserver 2008 下,布署网站遇到的错误解决方法
    iOS开发--沙盒
    毫秒必争,前端网页性能最佳实践
    C#可扩展数组转变为String[]数组
    iOS 界面启动时,功能新特征显示
    批量导入数据到mssql数据库的
    MongoDB 工具助手类(.NET)
    Xcode 快捷键及代码格式化
  • 原文地址:https://www.cnblogs.com/alamZ/p/6963589.html
Copyright © 2011-2022 走看看