当我访问某个网页时,我试图找到某个元素和一段文字:
<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元素有多个但内部有不同的数字。我该如何处理?
答案 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
方法按预期工作。