【问题标题】:How to find the last element in python selenium如何找到python selenium中的最后一个元素
【发布时间】:2021-04-14 07:52:02
【问题描述】:

我正在为不和谐创建一个网络爬虫,在登录机器人后应该提取不和谐频道中最后发送的消息并将其打印出来。然而,最后发送的消息是动态的。它总是有不同的路径。它也没有身份证。它只有一个类名embedFooterText-28V_Wb。如您所知,selenium 返回具有该类的第一个元素。在这种情况下,这是有史以来发送的第一条消息。我怎样才能扭转它,以便它得到最后发送的消息?这是我到目前为止所写的:

text = driver.find_element_by_class_name('embedFooterText-28V_Wb').get_attribute('innerHTML')
print(text)

此代码返回发送的第一条消息,我想获取发送的最后一条消息

【问题讨论】:

  • 请分享部分html

标签: python python-3.x selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

你可以找到最后一个的所有元素:

el1 = driver.find_elements_by_xpath("//*[contains(@class, 'embedFooterText-28V_Wb')]")[-1]

但最好已经使用 xpath 功能获得最后一个

【讨论】:

  • 但这和我之前回答的一样。
【解决方案2】:

使用(//*[contains(@class,'embedFooterText-28V_Wb')])[last()]
我使用了Java 语法,但在Python 中会非常相似

【讨论】:

  • 可以分享链接吗?
  • 我在这个有效的语法上犯了一个小错误。谢谢!
  • @jamey67 为什么你将接受的答案从我的改为 Vova 的?
  • 你在说什么?我只是问你为什么要删除你最初对我的回答给出的赞成票?
  • @Eliyahu 发现没必要
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 1970-01-01
  • 1970-01-01
  • 2010-11-17
  • 2013-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多