You need to enable JavaScript to run this app. Python Selenium页面正常加载但WebDriverWait超时无法获取数据
优惠活动
大模型
产品
解决方案
定价
更多

Python Selenium页面正常加载但WebDriverWait超时无法获取数据

问题排查修复方案

  • 调整超时等待时长,你当前设置的3秒对于境外站点来说过短,受网络波动影响很容易出现页面未加载完成就触发超时的情况,建议先调整到10~15秒测试:
    delay = 15
    
  • 替换绝对XPath为稳定性更高的相对XPath,你当前使用的从html根节点开始的全路径定位规则容错性极低,页面DOM结构稍有变动就会匹配失败。可以根据元素的文本、属性特征编写更通用的定位规则,示例如下:
    # 可根据目标元素的实际文本内容调整匹配规则
    name = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.XPATH, '//strong[contains(text(),"Roto-Rooter Plumbing & Water Cleanup")]')))
    
  • 验证是否被反爬策略拦截,先关闭无头模式运行代码,触发超时后打印当前页面的完整源码,确认目标元素是否真的存在于Selenium拿到的页面DOM中。部分站点会检测爬虫特征返回拦截页,此时即使你手动在浏览器中能看到对应元素,Selenium拿到的页面内容也是不包含目标元素的。
  • 确认目标元素是否嵌套在iframe或shadow DOM中,如果元素属于iframe内部,需要先调用driver.switch_to.frame()切换到对应iframe后再执行定位操作。
  • 可尝试更换元素等待条件,将presence_of_element_located替换为visibility_of_element_located,前者仅判断元素存在于DOM树,后者会额外确认元素可见,适配部分懒加载渲染的页面场景。

内容的提问来源于stack exchange,提问作者Justin Benfit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 04:33:03