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

use*_*742 15 python selenium xpath webdriver selenium-webdriver

我正在尝试从包含JavaScript内容的页面中抓取数据.例如,我想要的内容采用以下格式:

<span class="class">text</span>
...
<span class="class">more text</span>
Run Code Online (Sandbox Code Playgroud)

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

Yi *_*eng 30

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
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅此处的 Selenium Python API文档find_elements_by_xpath(xpath).


小智 6

这将返回一个项目列表:

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