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

Angular10项目Selenium UI测试报TypeError: 'str' object not callable错误

问题根源

报错是find_element方法传参格式错误导致的:By.XPATH是Selenium预定义的字符串常量,不是可调用的函数,你写的By.XPATH(Tags.starSysButton)相当于尝试把字符串对象作为函数调用,自然抛出TypeError: 'str' object not callable错误。

修复方案

find_element需要接收两个独立参数,第一个为定位方式常量,第二个为定位路径字符串,修改对应两行代码即可:

# 原错误写法
starElement = browser.find_element(By.XPATH(Tags.starSysButton))
# 修正后写法
starElement = browser.find_element(By.XPATH, Tags.starSysButton)

# 原错误写法
results = browser.find_element(By.XPATH(Tags.solPath))
# 修正后写法
results = browser.find_element(By.XPATH, Tags.solPath)
额外优化建议
  • 点击按钮后表格是Angular异步渲染生成的,隐式等待无法完全覆盖异步加载场景,建议搭配显式等待判断元素加载完成,避免后续偶发找不到元素的问题:
starElement.click()
# 最多等待10秒直到目标元素加载完成
results = WebDriverWait(browser, 10).until(
    EC.presence_of_element_located((By.XPATH, Tags.solPath))
)
  • 原代码末尾的if results: assert results逻辑冗余,find_element只要执行成功没有抛出异常,就说明元素已成功定位,不需要额外判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:09:04