TypeError:无法通过Python使用Selenium调用'str'对象

时间:2019-04-03 06:39:59

标签: python selenium selenium-webdriver properties webdriver

当我尝试执行以下所示的代码时,出现错误:

  

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()

2 个答案:

答案 0 :(得分:2)

text是属性,而不是函数。不用()

使用
element.text

请注意,绝对xpath "/html/body/..."是一种不好的方法,它使定位器很脆弱。您应该尝试通过唯一属性(idnameclass等)或相对不相关的xpath来定位元素。

答案 1 :(得分:1)

此错误消息...

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
    
  • 使用get_attribute("innerHTML")方法:

    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")