首页 > 解决方案 > 无法使用 Selenium 获取元素的文本

问题描述

我有下面的DOM元素:

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

我试图从中获得20.00000000价值:

text = driver.find_elements_by_xpath("//*[@class='styles__Content-rlm06o-1 ixoRjG']")[0].text
...
number = float(text)

但是 Python 返回could not convert string to float: ''意味着20.00000000没有被识别为文本。此代码已在其他网站上运行,所以也许这是一个特定于网站的东西?还是我忽略了什么?

标签: pythoncssseleniumselenium-webdriverxpath

解决方案


您可以尝试使用以下方法获取第一个元素的文本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 中。


推荐阅读