解决网页元素无法定位的几种方法

备注:

若出现手动和自动不一样,请用自动打开的页面查看元素

一、

元素未加载出来,此时可以使用显示等待或者隐式等待

显示等待如下:

from selenium.webdriver.support.ui import WebDriverWait

t = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id('u1'))

设置超时时间为10秒,即最长等待时间为10秒,若10秒内依旧没加载出来,则返回timeout超时的报错,10秒内检测到了u1这个元素,则立即执行下面的动作

隐式等待如下:

driver.implicitly_wait(10)

会等待页面上所有的元素都加载出来之后才会执行,若有其他元素未记载出来,则会在超时时间之前一直等待

隐式等待会比显示等待耗费时间,且隐式等待只作用于代码运行到该行时的窗口,对于新窗口无效

转载于:https://www.cnblogs.com/yueyanru/p/9383080.html

回答: 当页面元素无法定位时,可以考虑以下几种解决方法。首先,要注意给元素设定高度时要小心,除非给已知大小的图片设置高度,否则无法得知指定元素在页面上会有多高。此时最好通过padding等来控制高度。其次,如果在循环时页面多次刷新后找不到元素,可能是因为元素属性发生了变化。可以通过元素编辑找到发生变化的元素属性,并取消勾选,即不使用此属性定位元素。如果此时发现找到了多个元素,可以通过元素编辑或网页的检查寻找没有发生变化的关键元素,使用此属性定位元素。另外,使用Firefox浏览器可以查看页面元素,可以利用find_element_by_id()方法定位网页元素对象。例如,在百度网页中,可以通过ID定位元素,利用find_element_by_id()方法定位百度首页的输入框元素。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [页面元素定位-CSS元素基本定位](https://blog.csdn.net/weixin_32147807/article/details/119398747)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [影刃RPA 网页刷新无法定位元素](https://blog.csdn.net/byhjnwei/article/details/128675345)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值