使用Python Selenium点击按钮触发TypeError:'str'对象不可调用求排查
TypeError: 'str' object is not callable 错误原因与修复
核心错误点
- By.XPATH调用方式错误:你把
By.XPATH当成可调用函数,直接将XPATH表达式写在其括号内(By.XPATH("//button[@name='0-9']")),但By.XPATH是字符串常量,find_element方法需要接收两个独立参数:定位方式和定位表达式。这种错误写法会将两者拼接成字符串,尝试调用字符串时就会触发'str' object is not callable报错。
修正后的代码
for i in soup.find_all('div', class_='ShopBrandsAlphabetically-brandLink'): title = i.find('a', href=True) results.append(title.text.strip()) time.sleep(2) # 修正find_element的参数传递逻辑 driver.find_element(By.XPATH, "//button[@name='0-9']").click()
额外提示
- 循环逻辑需调整:当前代码会在遍历每个品牌链接时重复点击"0-9"按钮,不符合切换品牌组的预期,建议根据需求调整点击时机(比如移到循环外,或设置特定触发条件)。
- 推荐用
WebDriverWait显式等待替代time.sleep,提升代码稳定性,避免页面未加载完成导致的元素定位失败。
内容的提问来源于stack exchange,提问作者NSilt
相关产品推荐
相关产品推荐

