今天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);