Selenium和Python找到元素和文本?

时间:2012-08-18 15:27:20

标签: python selenium webdriver

当我访问某个网页时,我试图找到某个元素和一段文字:

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

这不起作用:(它给出了复合类名称的错误......)

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

所以我尝试了这个:(但我不确定它是否有效,因为我真的不明白在selenium中做css选择器的正确方法......)

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

找到span元素后,我想找到(内容)中的数字。

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

CSS选择器,类名和查找元素文本的任何帮助都会很棒!

感谢。

哦!而我的另一个问题是,这些精确的span元素有多个但内部有不同的数字。我该如何处理?

2 个答案:

答案 0 :(得分:35)

你想要: elem.text 来获取“里面的号码”。

说明:

在您的示例中,elem是webdriver的WebElement类的实例(来自selenium.webdriver.remote.webelement

WebElement实例有几个属性,包括:

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

.text属性包含“内容”


  

“我的另一个问题是有   多个精确的跨度元素   我怎么能处理那个?“

请不要在一个问题中提出几个问题..它与SO的格式不兼容。

但基本上,使用find_elements_*代替find_element_*。然后,您的定位器可以返回匹配的WebElement实例列表,而不是单个匹配的实例...您可以进一步过滤。

答案 1 :(得分:0)

问题实际上是类名,因为空格导致元素有3个不同的类(由空格分隔)

如果您将课程设置为Bold-Orange-Large,则应使用elem.text方法按预期工作。