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

Python Selenium使用By.XPATH定位时报'str' object is not callable如何解决

问题解决说明

错误原因

你遇到的TypeError: 'str' object is not callable错误和XPath语法无关,属于Selenium API调用方式错误:

  • By.XPATH是Selenium内置的字符串常量,并非可调用的函数
  • 你编写的By.XPATH('//h4[contains(text(),"This weekend")]')写法相当于尝试调用字符串类型的对象,因此触发类型错误。

修复方案

1. 修正API调用写法

find_element方法需要传入两个独立参数,第一个为定位策略常量,第二个为对应的定位表达式,正确写法如下:

# 需提前导入By类
from selenium.webdriver.common.by import By

# 正确的定位写法
driver.find_element(By.XPATH, '//h4[contains(text(),"This weekend")]')

2. 可选优化XPath

结合你提供的HTML结构,目标h4标签的文本是完全匹配的,可以修改为精准匹配的XPath,避免误匹配其他包含对应字符串的元素:

driver.find_element(By.XPATH, '//h4[text()="This weekend"]')

内容的提问来源于stack exchange,提问作者Abdul Saboor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:15:03