selenium等待

it2025-01-10  40

常见的有三种方法:

一、 死等

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

最新回复(0)