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

Python报错'str' object is not callable但代码无str变量求助

问题根因

该报错和自定义str变量无关,核心是Selenium元素定位的语法书写错误。
Selenium中By类的所有定位属性(包括By.NAME、By.ID、By.CLASS_NAME等)都是字符串类型的固定常量,本身不是可调用的函数/方法。你当前代码把本该传给find_element的定位值,错误写在了By.NAME的括号中,等价于执行"name"("_username")——尝试把字符串对象当函数调用,直接触发'str' object is not callable类型错误。

修复方案

修正定位语句的参数格式即可。find_element方法需要传入两个参数,第一个是定位策略常量(不需要加括号传参),第二个是对应的定位值,二者用逗号分隔:

from selenium import webdriver
from selenium.webdriver.common.by import By

username = "***"
password = "***"

driver = webdriver.Firefox()
driver.get("***")

# 修正后的定位语句
driver.find_element(By.NAME, "_username").send_keys(username)
补充排查项

如果修正语法后仍有同类报错,依次检查以下两点:

  • 执行pip show selenium确认安装的Selenium为4.x正式版本,若为3.x版本或4.0以下的测试版,执行pip install --upgrade selenium升级到稳定版
  • 检查当前运行的代码文件(包括未贴出的部分)、项目中导入的其他自定义模块,不存在将str、find_element、By相关属性赋值为字符串的名称覆盖操作

内容的提问来源于stack exchange,提问作者Deniz Yurtseven

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 02:48:33