Selenium和Python来查找元素和文本?

2024-04-23 11:42:14 发布

您现在位置:Python中文网/ 问答频道 /正文

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

<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??)
<>太好了!

谢谢。

哦!我的另一个问题是,有许多精确的跨度元素,但里面有不同的数字。我该怎么办?


Tags: 文本browser元素网页by数字elementsfind
2条回答

你想:elem.text得到“里面的号码”。

说明:

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

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

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

.text属性包含“内容”


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

请不要一次问几个问题。。它不能很好地与SO的格式一起工作。

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

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

如果将类设置为Bold-Orange-Large,则它应该与elem.text方法一起正常工作。

相关问题 更多 >