zoukankan      html  css  js  c++  java
  • 设置元素等待

    强制等待

    强制等待,不管你浏览器是否加载完了,程序都得等待3秒,3秒一到,继续执行下面的代码,作为调试很有用,有时候也可以在代码里这样等待,不过不建议总用这种等待方式,太死板,严重影响程序执行速度。

    目前一直用time.sleep(1) 直接等待几分钟这种

    隐性等待

    第二种办法叫隐性等待,implicitly_wait(xx),隐性等待的意义是:某男和某女约会,无论某女去哪儿,都要等某男xx秒,如果某男在这段时间内来了,则俩人约会开始,如果某男在规定时间内没到,则某女自然就等着给某男抛异常(生气中)

    隐形等待是设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步。注意这里有一个弊端,那就是程序会一直等待整个页面加载完成,也就是一般情况下你看到浏览器标签栏那个小圈不再转,才会执行下一步,但有时候页面想要的元素早就在加载完成了,但是因为个别js之类的东西特别慢,我仍得等到页面全部完成才能执行下一步,我想等我要的元素出来之后就下一步怎么办?有办法,这就要看selenium提供的另 一种等待方式——显性等待wait了。

    显示等待

    显示等待,等待某个元素成立时继续执行,否则在达到最大时长时抛出超时异常

    webdirver 提供的等待方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。

    WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)

    driver - 传入WebDriver实例

    timeout - 最长超时时间,默认以秒为单位
    poll_frequency - 调用until或until_not中的方法的间隔时间,默认是0.5秒 
    ignored_exceptions - 超时后的异常信息,默认情况下抛 NoSuchElementException 异常。 

    until()
    WebDriverWait()一般由 until()和until_not()方法配合使用

    until(method, message=’ ’)

    method: 在等待期间,每隔一段时间调用这个传入的方法,直到返回值为 Ture。  

    message: 如果超时,抛出TimeoutException,将message传入异常  


    调用该方法提供的驱动程序作为一个参数,直到返回值为 Ture。

    until_not(method, message=’ ’)

    与unitl()相反

    method: 在等待期间,每隔一段时间调用这个传入的方法,直到返回值False  

    message: 如果超时,抛出TimeoutException,将message传入异常 


    expected Conditions

     

    expected_conditions是selenium的一个模块,其中包含一系列可用于判断的条件

    from selenium.webdriver.support import expected_conditions as EC


    使用 expected_conditions 类时对其时行了重命名,通过 as 关键字对其重命名为 EC,
    然后可以调用expected_conditions类下面的方法

    title_is 用于判断标题是否 xx。
    title_contains 用于判断标题是否包含 xx 信息。

    presence_of_element_located 元素是否存在。

    presence_of_all_elements_located 判断一组元素的是否存在

    visibility_of_element_located 元素是否可见。

    invisibility_of_element_located 判断元素是否隐藏
    visibility_of 是否可见

    expected_conditions 类提供一些预期条件的实现。



    text_to_be_present_in_element 判断元素是否有 xx 文本信息
    text_to_be_present_in_element_value 判断元素值是否有 xx 文本信息
    frame_to_be_available_and_switch_to_it 表单是否可用,并切换到该表单。
    invisibility_of_element_located 判断元素是否隐藏
    element_to_be_clickable 判断元素是否点击,它处于可见和启动状态
    staleness_of 等到一个元素不再是依附于 DOM。
    element_to_be_selected 被选中的元素。
    element_located_to_be_selected 一个期望的元素位于被选中。
    element_selection_state_to_be 一个期望检查如果给定的元素被选中。
    element_located_selection_state_to_be 期望找到一个元素并检查是否选择状态
    alert_is_present 预期一个警告信息 

  • 相关阅读:
    NPOI读取excel表,如果有公式取出的是公式,想要取数字怎么办?
    win7 64位安装redis 及Redis Desktop Manager使用
    .net实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密
    用户、角色、权限数据库设计
    C#实现手机发送验证码
    遍历页面上的checkbox
    Http简介
    HTTP深入浅出 http请求
    最好用的js前端框架、组件、文档在线预览插件
    windows下nginx安装、配置与使用
  • 原文地址:https://www.cnblogs.com/yueli85627/p/9168379.html
Copyright © 2011-2022 走看看