当前位置:   article > 正文

爬虫学习日记(十一)selenium 页面元素更新

爬虫selenium点击以后更新源代码

今天HDMU发现获取的信息有重复,错乱的现象。

Debug排查原因以后,发现是因为点击显示详情后,他旧的信息还没有更新,就被capture了,导致某些信息是重复的。

归根到底的原因是因为: 用.visibilityOfElementLocated()只有第一次是有用的,当后面再点击别的显示详情,.visibilityOfElementLocated()判断的元素是依旧存在的,所以不会进行等待,直接capture。

思路:判断元素是否更新。

我刚开始的方案是:用.refresh()方法,但是看了源码发现传进去的Expectedcondition,看了很多文档也没有具体的例子,Stack Overflow上面虽然有,但大多数放的是clickAble的condition,我试着自己放了visibilityOfElementLocated在里面,但是不能达到效果。

第二种想到的方案是:每一次点击完以后,等2s。这种方案确实可行,但是有很大的漏洞,如果2s后显示不出来,就会获取不到。而且每个操作都要等两秒,很拖慢xiaolv。

后来想到比较合适的方案是:利用上一篇的知识点,执行JS删掉显示出来的DIV,然后再点击,他就会自己渲染出来显示详情的信息的DIV。

JS代码:var div = document.getElementsByClassName('layer_popup01')[0];div.parentNode.removeChild(div);

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号