目的:自动化中通常需要根据元素是否存在,来决定下一步的动作;比如 A存在就点击 下一步,B存在就点击保存;用于控制脚本的逻辑;
selenium中判断元素有几种方式
1、find_element(locateType, locate)
2、WebDriverWait(self.driver, 20, 0.5).until(EC.presence_of_element_located((locateType, locate)))
那么推荐使用2;如下:
# 判断元素是否存在
def elementTrue(drObject,locateType,locate):
# 等待元素加载出来
el = 1
try:
WebDriverWait(drObject, 5, 0.5).until(EC.presence_of_element_located((locateType, locate)))
# 返回元素
except:
pass
el = 0
return el
if el == 1:
return el
为什么不用方式1,因为页面加载快慢问题,方式1只会判断一次,恰巧元素正在加载中,那么返回就失败即元素不存在了;
方式2是driver内置的方法,显示等待,超时时间20s内,不断重试,只要元素在20s内加载出来了,就返回存在;这比方式1要稳定很多;
版权归原作者 北极之熊熊 所有, 如有侵权,请联系我们删除。