当前位置:   article > 正文

xpath定位问题导致的数据缺失,selenium点击事件点击失败_raise timeoutexception(message, screen, stacktrace

raise timeoutexception(message, screen, stacktrace)

问题描述:

近日在抓取某网站的时候,遇到一个第三方的数据加密,由于破解成本较高,选择使用selenium进行抓取数据。

在写完抓取脚本运行时候,发现脚本总会报错:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//span[contains(text(), '123565677')]"}
  (Session info: chrome=83.0.4103.116)

一开始我以为是因为页面还没有加载出这个节点,所以我就设置了等待,

wait.until(lambda diver: self.driver.find_element_by_xpath("//div[@class='list-item']"))

直到出现这个元素才会继续下面的操作。

继续运行,发现经常会发现超时错误:

    wait.until(lambda diver: self.driver.find_element_by_xpath("//div[@class='12312312']"))
  File "D:\Python\Python36\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 

经过debug调试:

发现脚本中的语句

self.driver.find_element_by_xpath(detail_xpath).click() 会间歇性的失效,导致无法打开详情页,会导致一系列的报错信息出现。

然后我开始尝试是不是xpath出现了问题。

刚开始我点击定位的是div标签,我尝试性的将定位改为span标签,每次点击都能顺利的进入详情。

如果遇到类似问题可以检查一下xpath问题

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/178023
推荐阅读
相关标签
  

闽ICP备14008679号