0

I am trying to get a series of text from a web element, but unable to.

The HTML code is as follows:

<span class="versionInfo">
  <span class="menu-highight">SoftFEPVis (GUI): </span> == $0
  "1.6.4"
  </span>

Where SoftFEPVis (GUI): and 1.6.4 are the texts which I would like to be able extract.

I am able to locate the element, and print out its class (menu-highlight), but un-able to extract SoftFEPVis (GUI): and 1.6.4.

I tried :

Version_Number = Browser.find_element(By.XPATH,'//[@id="versionDropDown"]/div/span[3]/span').getText()

and got an error:

'WebElement' object has no attribute getText.

Please help.

undetected Selenium
  • 183,867
  • 41
  • 278
  • 352
K Tran
  • 1

2 Answers2

1

Instead of using .getText() you could use:

.get_attribute('innerText')

or

.get_attribute('innerHtml')

or

.text

If it helps, here is a more in-depth discussion of the topic: Given a (python) selenium WebElement can I get the innerText?

0

getText() is a Selenium Java client method, where as from your code trials and the error message presumably you are using Selenium Python client.


Solution

To print the text SoftFEPVis (GUI): and 1.6.4 you can use the text attribute and you can use either of the following locator strategies:

  • Using css_selector and get_attribute("innerHTML"):

    print(Browser.find_element(By.CSS_SELECTOR, "span.versionInfo").text)
    
  • Using xpath and text attribute:

    print(Browser.find_element(By.XPATH, "//span[@class='versionInfo']").text)
    
  • Note : You have to add the following imports :

    from selenium.webdriver.common.by import By
    
undetected Selenium
  • 183,867
  • 41
  • 278
  • 352