python selenium 等待元素出现_python+selenium 自动化过程中遇到的元素不可见时间以及webelement不可见的处理方法...

出现Element is not clickable at point错误或者NoSuchElement的原因🈶️以下几点:

1、这个元素被点击的时候不在页面可见范围内

解决方法:使用显式等待方法等待元素可见或者可点击。

2、这个元素还未加载出来

解决方法:使用sleep休眠几秒等待加载

3、这个可被点击的元素被其他元素/蒙层所覆盖了

解决方法:对于下拉菜单鼠标悬停等使用ActionChains类解决

4、在Iframe里

解决方法:将焦点转至iframe里

注:页面等待方法(python)

a.显式等待:使WebDriver等待某个条件成立时继续执行,否则超过时长就跑出超时异常

使用方法:

from selenium importwebdriverfrom selenium.webdriver.common.by importByfrom selenium.webdriver.support.ui importWebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC

frameElement=WebDriverWait(driver,30,0.5).until(EC.presence_of_element_located((By.XPATH,xpath)))

其中WebDriverWait(driver浏览器驱动,timeout最长超过时间,检测间隔时间S),在设置时间内,每隔一段时间检测一下当前页面是否存在,超过时间抛异常

WebDriverWait()一般由utill()或until_not()配合使用

until(method,message='')调用该方法提供的驱动程序作为一个参数,知道返回值为True

EC----expected_conditions类提供了一系列的场景判断方法,本例子使用了presence_of_element_located()方法判断元素是否存在

b.隐式等待

WebDriver.implicitly_wait(10)通过一定的时长来等待页面上某元素加载完成。

注:单位S,10s并不是一个固定的等待时间他不影响脚本的执行速度,不针对页面上的某一元素进行等待,如果元素可以定位,继续执行,不可以定位会已轮询的方式不断判断元素是否被定位到,无法定位抛出异常。

c.sleep休眠

希望脚本执行到某个位置做固定时间的休眠

from time importsleep

sleep(10)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值