15

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

<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 元素后,我想找到里面的数字(the content)

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

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

谢谢。

哦!我的另一个问题是这些确切的跨度元素有多个,但里面的数字不同。我该如何处理?

4

2 回答 2

36

你想要:elem.text得到“里面的数字”。

解释:

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

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

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

.text属性包含“内容”


“我的另一个问题是这些确切的跨度元素有多个......我该如何处理?”

请不要同时问几个问题。它不适用于 SO 的格式。

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

于 2012-08-18T15:56:54.517 回答
0

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

如果您将类设置为,Bold-Orange-Large它应该可以按预期使用该elem.text方法。

于 2012-08-20T09:37:32.130 回答