When I try to do code shown below I get error :
TypeError: 'str' object is not callable
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()
This error message...
TypeError: 'str' object is not callable
...implies that your program have invoked a function() which is actually a property.
As per selenium.webdriver.remote.webelement text is a property.
So, you can't invoke text() as a function. Hence you see the error.
You can use either of the following solutions:
Use text property:
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
Use get_attribute("innerHTML") method:
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")
text is a property, not a function. Use it without ()
element.text
As a side note, absolute xpath "/html/body/..." is a bad approach, it makes fragile locator. You should try locating the elements by unique attribute (id, name, class etc), or atleast relative xpath.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With