【问题标题】:Find the last div in XPATH / Selenium with Python使用 Python 在 XPATH / Selenium 中查找最后一个 div
【发布时间】:2021-03-24 10:48:43
【问题描述】:

我是这个主题的新手,我的问题很简单,但我认为我做得不对::'(

我正在尝试获取 div 的最后一个元素,因为它的数字是动态的。 我正在使用硒,它是这样的:

test = driver.find_element_by_xpath("/html/body/div[1]/div[2]/div/div[2]/div/div/div/div/div[2]/div[2]/main/div[1]/div/div[1]/div/**div[17]**/div[2]/div[1]/div/div[2]/div[1]/div[2]/a")

我想恢复“div [17]”的值,例如,它将变为“div [18]”或更高版本的 19。

我尝试了类似的方法,但没有成功:

test = driver.find_element_by_xpath("/html/body/div[1]/div[2]/div/div[2]/div/div/div/div/div[2]/div[2]/main/div[1]/div/div[1]/div/**div[last()]**/div[2]/div[1]/div/div[2]/div[1]/div[2]/a")

我有点卡住了,谢谢你的帮助:)

【问题讨论】:

  • 请[编辑您的问题并发布您的相关 HTML?
  • 请尝试更新的答案,否则分享 html

标签: python selenium xpath webdriver


【解决方案1】:
test = driver.find_elements_by_xpath("/html/body/div[1]/div[2]/div/div[2]/div/div/div/div/div[2]/div[2]/main/div[1]/div/div[1]/div/div")

lastelement = test[-1].find_element_by_xpath("./div[2]/div[1]/div/div[2]/div[1]/div[2]/a")

使用 find elements ,它返回完整的元素,然后使用 -1 从数组中获取最后一个元素

【讨论】:

  • 你应该使用 find_elements 而不是 find_element
【解决方案2】:

你试过这个吗? Why is XPath last() function not working as I expect?

也许您需要用括号将 div 块四舍五入并使用双斜杠 '//(div)[last()]'

【讨论】:

  • 我尝试了几个变种,但仍然有错误
猜你喜欢
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
相关资源
最近更新 更多