python - 从 Selenium for Python 中具有相同类的多个元素获取文本?

标签 python selenium xpath selenium-webdriver webdriver

我正在尝试从加载了 JavaScript 内容的页面中抓取数据。比如我要的内容是这样的格式:

<span class="class">text</span>
...
<span class="class">more text</span>

我使用了 find_element_by_xpath(//span[@class="class"]').text 函数,但它只返回指定类的第一个实例。基本上,我想要一个像 [text, more text] 等的列表。我找到了 find_elements_by_xpath() 函数,但是 .text 在最终导致错误 exceptions.AttributeError: 'list' object has no attribute 'text'

最佳答案

find_element_by_xpath 返回一个元素,该元素具有 text 属性。

find_elements_by_xpath() 返回所有匹配的元素,这是一个列表,所以你需要遍历并获取每个元素的 text 属性。

all_spans = driver.find_elements_by_xpath("//span[@class='class']")
for span in all_spans:
    print span.text

请引用 Selenium Python API 文档 here有关 find_elements_by_xpath(xpath) 的更多详细信息。

关于python - 从 Selenium for Python 中具有相同类的多个元素获取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23924008/

相关文章:

python - 为什么我无法打印返回值?

python - 在 tkinter 中交互验证 Entry 小部件内容(第 2 部分 - 更改条目对象的属性)

xml - 如何在 Mule 中使用 XPATH 函数

html - 使用 selenium 抓取网页时缺少 HTML 内容

java - 如何创建所有 XPATH 元素的所有innerHTML 的列表

python - 如何从子类调用基类的 __init__ 方法?

python - 如何导入两个同名的库

java - Selenium 网络驱动程序 : How to verify a text that is within h2 and duplicated class

python - Selenium 类型错误: __init__() got an unexpected keyword argument 'service'

ruby-on-rails - 如何在 Amazon Linux 上将 selenium 与 chrome 驱动程序一起使用。错误:Selenium::WebDriver::Error::UnknownError:未知错误:找不到 Chrome 二进制文件