多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

Selenium Webdriver使用Click失效问题的解决方法-自动化测试

更新时间:2022-04-02 09:40:35 作者:多测师 浏览:177

  想要爬取动态网页,很莫名的click失效。被这个问题困扰了很久,基本上把网上提到的所有方法试遍了,最终终于有个方法成功了,在这里总结一下。

Selenium Webdriver使用Click失效问题的解决方法-自动化测试

  这是我想要点击的网页,初始时实在0.5km上,它的class属性是‘on’,想要点击到2km

  方法一:直接用webdriver的click方法,失效。

  browser.find_element_by_xpath("//div[@id='map-distance']/a[4]").click()

  text方法检验输出,可以看到确实是定位到了我想要点击的元素的。迷之失效,有人理解原因的话请和我说一下。

  注意:此处用xpath定位,先用唯一的id来定位父节点,再定到子节点,子节点从1开始计数,所以是a[4]。

  方法二:调用js方法中的setAttribute方法,失效。

  js2 = "var q=document.getElementById('map-distance').children[3].setAttribute('class','on')"

  js3 = "var a=document.getElementById('map-distance').children[0].removeAttribute('class')"

  browser.execute_script(js2)

  browser.execute_script(js3)

  将元素的class属性设为on,同时删除初始元素的class属性。跑代码的时候已经看到2km被选中了,然而还是失效。。JavaScript我也不太了解,实在不知道为什么。

  注意:这里的.chidren返回的是子代的列表,列表是从0开始的,所以取3。

  方法三:调用js方法中的click方法,成功!

  js2 = "var q=document.getElementById('map-distance').children[3].click()"

  browser.execute_script(js2)

  成功解决!

  以上内容为大家介绍了自动化测试中的Selenium Webdriver使用Click失效问题的解决方法,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部