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
相关产品推荐
相关产品推荐

