• 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
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    代码生成器所用到的东西
    被float.parse吃掉的0.03...
    Microsoft Visual Studio 2010 Ultimate ISO 官方下载地址
    关于.net实现网站模板机制(非标签替换)
    关于ACCESS的事务与存储过程的调用
    关于如何实现左中右三栏布局, 左右固定宽度,中间随屏幕自适应
    几个台湾优秀个人博客网站
    [转]MathType常见问题
    Qt中int转换成QString
    fatal error C1189: #error : The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro.
  • 原文地址:https://www.cnblogs.com/hhm8hhm/p/7695959.html
Copyright © 2020-2023  润新知