zoukankan      html  css  js  c++  java
  • selenium等待

    常见的有三种方法:

    一、 死等

    import time

    time.sleep(10) 以秒为单位

    二、Implicit Waits(隐式等待)

     driver = webdriver.Firefox()
      driver.implicitly_wait(10)#单位秒
      driver.get('http://www.baidu.com')整个页面都有效 一个py文件写一个即可
    三、显示等待
     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.Firefox()
         driver.get('http://www.baidu.com')
         #显示等待
       locator = (By.ID, 'kw')
         element = WebDriverWait(driver,5,0.5).until(ec.presence_of_all_elements_located((By.ID,"kw"))) #可换为locator 
         driver.find_element_by_id("kw").send_keys("selenium")
    driver: 传入WebDriver实例,即我们上例中的driver
    
    
    timeout: 超时时间,等待的最长时间(同时要考虑隐性等待时间)
    
    
    poll_frequency: 调用until或until_not中的方法的间隔时间,默认是0.5
    
    
    ignored_exceptions: 忽略的异常,如果在调用until或until_not的过程中抛出这个元组中的异常,则不中断代码,继续等待,如果抛出的是这个元组外的异常,则中断代码,抛出异常。默认只有NoSuchElementException。
    
    
    until
    
    
    method: 在等待期间,每隔一段时间调用这个传入的方法,直到返回值不是False
    
    
    message: 如果超时,抛出TimeoutException,将message传入异常
    
    
    until_not 与until相反,until是当某元素出现或什么条件成立则继续执行,until_not是当某元素消失或什么条件不成立则继续执行,参数也相同,





     
    driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement")


    作者:半个王国
    链接:http://www.jianshu.com/p/bf27aad96614
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement")


    作者:半个王国
    链接:http://www.jianshu.com/p/bf27aad96614
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement")


    作者:半个王国
    链接:http://www.jianshu.com/p/bf27aad96614
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement")


    作者:半个王国
    链接:http://www.jianshu.com/p/bf27aad96614
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement")


    作者:半个王国
    链接:http://www.jianshu.com/p/bf27aad96614
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement")


    作者:半个王国
    链接:http://www.jianshu.com/p/bf27aad96614
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    spring security使用数据库管理用户权限
    ubuntu安装配置jdk tomcat mysql ...
    64位虚拟机安装64位ubuntu出现问题
    maven pom文件结构详解
    Maven3下的java web项目
    数据库分页和使用jstl标签替换分页的jsp代码
    servlet生命周期
    图片校验码的生成
    HttpSessionListener和HttpSessionBindingListener监听session的销毁
    perl 处理特殊字符
  • 原文地址:https://www.cnblogs.com/hhm8hhm/p/7695959.html
Copyright © 2011-2022 走看看