Selenium

1. 什么是元素等待以及为什么要等待

1.1 概念:

在定位页面元素时如果未找到,会在指定时间内一直等待的过程

1.2 为什么需要元素等待

在使用Selenium进行元素定位时, 可能会出现页面还mei
	(1).网络速度慢 
	(2).电脑配置低 
	(3).服务器处理请求慢

2. 元素等待类型及实现

# 1.等待类型:
	(1).隐式等待: 定位元素时,如果能定位到元素则直接返回该元素,不触发等待;如果不能定位到该元 素,则间隔一段时间后再去定位元素;如果在达到最大时长时还没有找到指定元素,则抛出元素 不存在的异常NoSuchElementException。
	(2).显式等待: 定位指定元素时,如果能定位到元素则直接返回该元素,不触发等待 如果不能定位到该元素,则间隔一段时间后再去定位元素;如果在达到最大时长时还没有找到指定元素,则抛出超时异常TimeoutException。
# 2.实现方式:
# (1).隐式等待:
	driver.implicitly_wait(timeout)

# (2).显式等待:
	1).导包: from selenium.webdriver.support.wait import WebDriverWait 
	2).实例化对象: WebDriverWait(driver, timeout, poll_frequency=0.5) 
		- driver:浏览器驱动对象 
		- timeout:超时的时长,单位:秒 
		- poll_frequency:检测间隔时间,默认为0.5秒 
	3).用方法until(method):直到...时 
		- method:函数名称,该函数用来实现对元素的定位 
		- 一般使用匿名函数来实现:lambda x: x.find_element_by_id("userA") 
	4).element = WebDriverWait(driver, 10, 1).until(lambda x:x.find_element_by_id("userA") )
原文地址:https://www.cnblogs.com/yimeng123/p/15264844.html