TypeError: 'str' 对象不能通过 Python 使用 Selenium 调用

新手上路,请多包涵

当我尝试执行下面显示的代码时出现错误:

TypeError: ‘str’ 对象不可调用

email2_elem = driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[1]/div[1]/div[1]/form[1]/div[1]/input[1]").text()

原文由 szymond45 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 546
2 个回答

这个错误信息…

 TypeError: 'str' object is not callable

…意味着您的程序调用了 function() 实际上是 property

根据 selenium.webdriver.remote.webelement text 是一个 property

因此,您不能将 text() 作为函数调用。因此您会看到错误。

解决方案

您可以使用以下任一解决方案:

  • 使用 text _属性_:
   email2_elem = driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[1]/div[1]/div[1]/form[1]/div[1]/input[1]").text

   email2_elem = driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[1]/div[1]/div[1]/form[1]/div[1]/input[1]").get_attribute("innerHTML")

原文由 undetected Selenium 发布,翻译遵循 CC BY-SA 4.0 许可协议

text 是属性,不是函数。在没有 () 情况下使用它

element.text

作为旁注,绝对 xpath "/html/body/..." 是一种糟糕的方法,它使定位器变得脆弱。 You should try locating the elements by unique attribute ( id , name , class etc), or atleast relative xpath .

原文由 Guy 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题