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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
原文地址:https://www.cnblogs.com/hhm8hhm/p/7695959.html