35
votes

I am trying to get the tag text content in html page by using Selenium methods, but it seems method someElement.getText() is not available in Python. Any help, please?

Here's traceback:

AttributeError: 'WebElement' object has no attribute 'getText'
4
It is about replacing text with JavaScript execution. - Alex
I was pointing at the .text method cited inside the question - aberna

4 Answers

64
votes

Once you locate the element you can use the text property.

Example:

for element in self.driver.find_elements_by_tag_name('img'):
       print element.text
       print element.tag_name
       print element.parent
       print element.location
       print element.size
4
votes

Selenium Get Text From Element (just add ".text")

1

for all elements of the list

tree = browser.find_elements_by_xpath(<the_XPATH>)
for i in tree:
   print(i.text) 

2

[ ] fetchby number

 tree = browser.find_elements_by_xpath(<the_XPATH>)
 print(tree[0].text) 
0
votes

I was in task to extract text between the target tags but the x.text method didn't work for me. This is because some text are saved as invisible elements .For invisible elements use:

list1 = [x.get_attribute("innertext") for x in driver.find_element_by_xpath(xpath)]
print(list1)
0
votes

Actually with python 3 this worked for me:

obj= browser.find_element_by_xpath("the_XPATH")
print(obj.text)

Is not necesary iterate the element because launch a Traceback:

TypeError: 'WebElement' object is not iterable