Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Selenium and Python to find elements and text?

When I go to a certain webpage I am trying to find a certain element and piece of text:

<span class="Bold Orange Large">0</span>

This didn't work: (It gave an error of compound class names...)

elem = browser.find_elements_by_class_name("Bold Orange Large")

So I tried this: (but I'm not sure it worked because I don't really understand the right way to do css selectors in selenium...)

elem = browser.find_elements_by_css_selector("span[class='Bold Orange Large']")

Once I find the span element, I want to find the number that is inside (the content).

num = elem.(what to put here??)

Any help with CSS selectors, class names, and finding element text would be great!

Thanks.

Oh! and my other problem is that there are multiple of those exact span elements but with different numbers inside. How can I deal with that?

like image 905
Marcus Johnson Avatar asked Aug 18 '12 15:08

Marcus Johnson


1 Answers

you want: elem.text to get "the number that is inside".

explanation:

in your example, elem is an instance of webdriver's WebElement class (from selenium.webdriver.remote.webelement)

a WebElement instance has several properties, including:

  • tag_name
  • text
  • size
  • location
  • parent
  • id

.text property contains "the content"


"and my other problem is that there are multiple of those exact span elements ..how can I deal with that?"

please don't ask several questions in one.. it doesn't work well with SO's format.

but basically, use the find_elements_* instead of find_element_*. your locator can then return a list of matching WebElement instances instead of a single matching instance... which you can filter further.

like image 66
Corey Goldberg Avatar answered Oct 13 '22 19:10

Corey Goldberg