selenium获取网页数据每次顺序不一样(selenium抓取页面请求)
上期内容从“元素通用性”入手,为影刀RPA用户解答了这三方面困惑:找不到元素怎么办?找到很多元素怎么办?如何定位元素?本期「影刀FAQs」继续从元素入手,为大家介绍 4 个“元素进阶技巧”,文中为了方便理解均选取了贴近应用的实例。
希望能够帮助大家记录纠错,为你们腾出更多的时间挖掘创造力,用影刀去创造更多的可能,让这款产品将会变得富有价值和趣味性。
01 未找到指定ID的元素
❕报错原因:在操作时网页刷新了,导致软件找不到刷新前获取的网页元素,一般出现在循环中
❔可能情况(一):进行循环相似元素循环操作时网页刷新了
√ 解决方法:改用For次数循环循环网页相似元素,在循环内重新获取相似元素列表,按For次数循环得到的下标去取相似元素列表中的项来操作。
Step1:循环前先获取一次相似元素列表来获取列表长度
Step2:根据获取到的列表长度进行For次数循环
展开全文
Step3:每次循环都重新获取相似元素列表,有效避免网页刷新而找不到元素
Step4:根据For循环的次数来取相似元素中的项,达到循环相似元素列表的效果
❔可能情况(二):在调用【获取元素对象】或【获取关联元素】指令获取的元素对象前网页刷新了
△网页刷新,导致点击前捕获的元素找不到
√ 解决方法:在网页刷新后再获取网页元素
△将获取元素对象的操作,放在网页刷新操作之后
02 网页加载太快捕获不到目标元素
❕问题描述:网页加载太快导致某些需要判断的等待元素刚出现就消失了
△网页加载太快
√ 解决方法:使用开发者模式中 network 里的 slow 3G 让网速变慢。
△ 使用开发者模式 network 里的 slow 3G
03 网页元素被遮挡
❕问题描述:网页上待操作的元素,被弹出的广告等遮挡,以至于点击不中该元素
△ 元素被遮挡
√ 解决方法(一):取消模拟人工输入的勾选:对被遮挡元素,采用【非模拟人工操作】的方式进行操作
在【点击网页元素】、【悬停在网页元素上】、【填写输入框】等网页元素配置框的【高级】选项区,取消模拟人工输入的勾选
△ 点击取消勾选
√ 解决方法(二):设置该元素属性,将其隐藏,将遮挡元素的 style 属性,设置为 display:None ,将该元素隐藏
△ 设置网页元素属性
04 网页中通过关联父元素找子元素
❕案例说明:
△ 案例说明
关联父元素原理:获取元素时选择关联父元素,获取到的所有元素都会是这个元素的孩子元素(子元素、子元素的子元素等)
❕流程演示:
△ 流程演示
√操作步骤:在元素编辑中寻找因鼠标悬停而变化的属性,取消勾选(一般这类属性值中带有hover或on等字段
Step1:捕获元素,捕获尺码文本/条形码输入框及其共同父元素的相似元素
△ 捕获尺码的相似元素组并命名为尺码_相似元素组
△ 捕获条形码相似元素组并命名为条形码_相似元素组
△ 捕获尺码和条形码共同父元素的相似元素组,并命名为富元素_相似元素组
Step2:撰写流程
△ 流程全步骤
流程配置图①
△ 循环相似元素
流程配置图②
△ 获取元素对象
流程配置图③
△ 获取元素信息
流程配置图④
△ If条件判断
流程配置图⑤
△ 获取元素对象
流程配置图⑥
△ 填写输入框
END
分叉智能(影刀RPA)是一家创新型科技公司,聚焦RPA赛道自主研发出核心产品——影刀RPA拥有完全的技术知识产权,公司助力电商、金融、物流、医疗、通讯等领域企业和员工实现数智化、自动化转型。