如何从XPath Selenium(Python)中提取多个元素

2024-04-26 12:11:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了这个XPath

alo1 = driver.find_element(By.XPATH, "//div[@class='txt-block']/span/a/span").text
print(alo1)

但问题是:我只得到第一个元素,但是有3到4个元素具有相同的XPath,我想要的是所有元素。在

从一页到另一页,元素的数量从0变为4。在

我该怎么做?在

还有,你认为有可能生成另一个XPath吗?我想知道电影制作人的名字。在

编辑:

我有第二个困难。我只需要打印最后一行。怎么能做到呢?你说

^{pr2}$

参考网站:http://www.imdb.com/title/tt4854442/?ref_=wl_li_tt


Tags: textdivtxt元素bydriverelementfind
2条回答

您可以一次获取所有元素,然后获取每个元素的文本:

alos = driver.find_elements(By.XPATH, "//div[@class='txt-block']/span/a/span")

for alo in alos:
  print alo.text

对于第一个问题:

FindElement总是只给出一个结果,即使定位器匹配多个结果,它也会自动获得第一个结果。在

如果locator给出了多个匹配结果,并且您想要所有匹配结果,那么您应该使用findElements

关于第二个问题:

labels = driver.find_elements_by_xpath("//div[@class='txt-
block']/span/a/span")
result = ''
for label in labels:
   result += label.text
   print (result)
ws.write(x-1,1,result)
wb.save("sinopses.xls")

相关问题 更多 >