You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium时XPath定位失效,无法获取目标页面传真号码

解决Selenium无法抓取页面传真号码的问题

我尝试获取页面https://www.barreaunantes.fr/annuaire-des-avocats/stephanie-dreux/中的传真号码,但运行以下Selenium代码后没有得到任何结果:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support.select import Select

PATH="C:\Program Files (x86)\chromedriver.exe"
url='https://www.barreaunantes.fr/annuaire-des-avocats/stephanie-dreux/'
driver =webdriver.Chrome(PATH)
wait = WebDriverWait(driver, 20)
driver.get(url)

Fax = driver.find_element(By.XPATH, "//p//strong[contains(text(),'Fax : ')]").text
print(Fax)

问题分析

  1. 元素定位偏差:原代码用XPATH定位<strong>标签内包含Fax : 的文本,但实际页面的传真信息可能不在这个标签结构里,或是文本格式、嵌套关系和预期不符。
  2. 未等待元素加载:虽然初始化了WebDriverWait,但没有实际用它等待元素出现,页面可能还没加载完成就执行了定位操作。
  3. 动态加载影响:页面内容可能是AJAX动态加载的,直接定位会找不到元素。

修正后的代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

PATH="C:\Program Files (x86)\chromedriver.exe"
url='https://www.barreaunantes.fr/annuaire-des-avocats/stephanie-dreux/'
driver = webdriver.Chrome(PATH)
wait = WebDriverWait(driver, 20)
driver.get(url)

try:
    # 等待包含传真信息的元素加载可见,调整XPATH适配实际页面结构
    fax_container = wait.until(EC.visibility_of_element_located((By.XPATH, "//p[contains(text(), 'Fax')]")))
    # 提取文本并拆分出传真号码
    full_fax_text = fax_container.text
    fax_number = full_fax_text.split('Fax : ')[-1].strip()
    print(f"传真号码:{fax_number}")
except Exception as e:
    print(f"获取失败:{str(e)}")
finally:
    driver.quit()

关键修正点

  • 用expected_conditions的visibility_of_element_located等待元素加载完成,避免页面未就绪就执行定位。
  • 调整XPATH定位到包含传真信息的父容器(比如<p>标签),适配实际页面的HTML结构。
  • 添加异常捕获,方便快速排查定位失败的原因。
  • 最后关闭浏览器,释放资源。

额外排查建议

  • 打开页面按F12调出开发者工具,搜索Fax关键词,查看传真信息实际的HTML结构,确认正确的定位路径。
  • 检查页面是否有iframe嵌套目标元素,若有需要先用driver.switch_to.frame()切换到对应iframe再定位。
  • 确认内容是否需要滚动页面或触发其他交互才会显示,若有则添加对应操作。

内容的提问来源于stack exchange,提问作者GX Mentor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:48:30