Alex
Alex

Reputation: 3257

Python and how to get text from a Selenium element WebElement object

I am trying to get the tag text content on an HTML page by using Selenium methods, but it seems method someElement.getText() is not available in Python. Is there a way?

Here's a traceback:

AttributeError: 'WebElement' object has no attribute 'getText'

Upvotes: 48

Views: 172514

Answers (4)

aKratos
aKratos

Reputation: 313

Actually with Python 3 this worked for me:

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

Is not necessary iterate the element because launch a Traceback:

TypeError: 'WebElement' object is not iterable

Upvotes: 0

Aswin Babu
Aswin Babu

Reputation: 340

I was in a 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)

Upvotes: 0

Somesh Samadder
Somesh Samadder

Reputation: 99

Selenium get text from an 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)
    

Upvotes: 7

aberna
aberna

Reputation: 5814

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

Upvotes: 91

Related Questions