异步采集器解决应用运行时无法找到采集网页元素问题
异步采集器解决应用运行时无法找到采集网页元素问题
2018-02-23 16:23 by dejan, … 阅读, … 评论, 收藏, 编辑
采集异步采集器设计应用时如何防止出现运行时无法找到元素问题,掌握好元素的路径设置就能很好的解决此问题,元素绝对路径、元素编号及元素样式名查找定位元素灵活运用。
应用设计时能正常提取到元素内容,但应用运行时会出现无法找到元素,导致运行时中断无法向后执行,如出现时以下错误提示:
应用运行路径错误
导致以上问题出现有两种情况:
一是当前应用运行节点没有按设计好的流程执行,设计上没有考虑周全导致程序提前执行了此节点,从而导致无法找到网页元素错误,比如当点击搜索后需要提现搜索列表数据,但点击事件节点没有标记为执行后等待刷新,页面还未刷新就执行了下一步节点,等页面刷新完成后会导致程序提前执行了后续流程节点,提前执行了采集网页元素内容节点就会出现无法到找网页元素错误;
第二种情况是程序按流程正常执行到了采集网页元素内容节点,但也无法找到网页元素,这种情况通常是采集元素的基础路径或相对路径设置错误导致的。首先基础路径是选择所有需要处理的网页元素,再确定相对路径是否能找到,因为设计时程序采集用jQuery选择符功能,也可通过jQuery来调试是否能选中元素。元素路径通常会根据绝对路径、元素编号、元素样式名来定位查找,不同的元素路径设置可能会出现不同问题,需要结合网页设计特点来确定。以下给出这几种路径选择的优缺点参考:
1)绝对路径定位:绝对路径是根据元素所处的网页布局位置从下向上生成的,如下图中百度搜索中输入框的绝对位置,好处是能准确定位到元素,确定是如果网页布局排版是变化的变容易出错,稍微调整一下布局就可能导致无法找到搜索输入框,建议是优先考虑元素编号或元素样式选择路径。
2)元素编号定位:元素编号可通过元素自身编号或元素上级编号来定位查找元素,元素编号也是网页开发者为方便调用元素设置的编号,通常是网页中唯一的固定的找到元素的方法。开发应用时可优先选择此种方法来查的定位元素,当元素没有设置编号时再选择其它方法来定位元素,缺点是当出现元素编号是动态变化的,根据数据或操作生成的编号可能会导致定位失败,通常网页开发者会在编号后面加上序号,这种编号也是不可取的。
3)元素样式定位:元素样式名查找元素是网页中比较常用的,通知在定位一批相同元素的时候比较方便,这一批元素有着相同的显示外观,相对路径查找可结合元素编号+元素样式来定位。这种方式定位灵活,受网页布局排版影响相对绝对路径要小,缺点是容易选错元素,路径设置不合理可能会选中相同元素样式名页不需要的网页内容。