python-3.x - Selenium Python 迭代 ol 中的 li 元素
问题描述
我需要使用 python 和 selenium 提取多个 li 元素的文本,所有这些元素都在 ol 元素内。清单是这样的:
/html/body/main/div/div/section/ol/li[3]/div/div/div[2]/div[1]/a[1]/h2
/html/body/main/div/div/section/ol/li[4]/div/div/div[2]/div[1]/a[1]/h2
/html/body/main/div/div/section/ol/li[5]/div/div/div[2]/div[1]/a[1]/h2
/html/body/main/div/div/section/ol/li[6]/div/div/div[2]/div[1]/a[1]/h2
...
到目前为止,我正在使用以下代码,但此代码仅显示一个元素,而不是整个列表。它有什么问题?谢谢!
articles_list=r'/html/body/main/div/div/section/ol'
articles_elements = driver.find_elements_by_xpath(articles_list)
for article in articles_elements:
title = article.find_element_by_xpath('.//div/div/div[2]/div[1]/a[1]/h2').text
print('Title:'+title)
解决方案
我看到那个li
标签有增量索引,比如[3]
then[4]
等等。
i = 3
您可以通过最初声明然后以编程方式递增使用来查找每个 Web 元素。
a = 3
size_of_list = driver.find_elements_by_xpath(f"/html/body/main/div/div/section/ol/li")
for i in range(size_of_list):
title = driver.find_element_by_xpath(f"/html/body/main/div/div/section/ol/li[{a}]/div/div/div[2]/div[1]/a[1]/h2").text
print('Title:', title)
a = a +1