Python 无法使用Selenium获取元素的文本

Python 无法使用Selenium获取元素的文本,python,css,selenium,selenium-webdriver,xpath,Python,Css,Selenium,Selenium Webdriver,Xpath,我有下面的DOM元素: <span class="styles__Content-rlm06o-1 ixoRjG">20.00000000</span> 但是Python返回的无法将字符串转换为float:“意味着20.00000000未被识别为文本。这段代码已经在其他网站上使用过了,所以这可能是一个特定于网站的东西?还是我忽略了什么?您可以尝试使用xpath获取第一个元素的文本: el_text = driver.find_element_by_x

我有下面的DOM元素:

<span class="styles__Content-rlm06o-1 ixoRjG">20.00000000</span>

但是Python返回的
无法将字符串转换为float:“
意味着
20.00000000
未被识别为文本。这段代码已经在其他网站上使用过了,所以这可能是一个特定于网站的东西?还是我忽略了什么?

您可以尝试使用xpath获取第一个元素的文本:

el_text = driver.find_element_by_xpath("//span[contains(@class, 'styles__Content-rlm06o-1 ixoRjG')][1]").text
此外,您还可以通过以下方式使用
css
选择器:

el_text = driver.find_element_by_css_selector(".styles__Content-rlm06o-1.ixoRjG:nth-of-type(1)").text

如果文本仍然为空,请确保您正在等待该元素变为可见,并且该元素不在iframe中。

您可能从该列表中获得了不同的元素。我建议采用与vitaliis类似的方法,但不是按类查找,而是按文本查找

text = driver.find_element_by_xpath("//span[contains(text(), '20')]").text
number = float(text)
print(number)

字符串为空(
'
)。不能将其铸造为浮动。(试试
print(text)
)你确定这是这些类的第一个元素吗?@Sven Eberth是的,我知道。问题是
20.00000000
未被识别为字符串<代码>打印(文本)结果只是打印一个空行。@JohnGordon元素检查器说这是16个元素中的1个。@JohnGordon元素表示网站primedice.com上帐户余额的摘要,并且始终是DOM中的第一个此类元素。这是一个基本元素,它也存在于它的姊妹网站(stack.com)上,我可以用相同的代码与之交互,而不会出现任何问题。这里有一个帮助。它只在文本值始终相同的情况下起作用。好吧,是的,但在您要从多个节点提取的问题中不明确,您需要证明您的xpath指向正确的元素,检查这一点的一种方法是为构建一个
循环,并打印该类名每次出现的文本。正如我所看到的,
我试图从中获取20.00000000值:
明确表示asker想要获取一个值。我理解你的意思,但这里需要的只是一个唯一的定位器。在我看来,一个值不仅可以从20开始,而且可以是不同的。第一个建议奏效了。谢谢但是我仍然不知道为什么用这种方式选择班级会有不同。
text = driver.find_element_by_xpath("//span[contains(text(), '20')]").text
number = float(text)
print(number)