Python 3.x Python Selenium获取xpath的第n个元素

Python 3.x Python Selenium获取xpath的第n个元素,python-3.x,selenium,xpath,chropath,Python 3.x,Selenium,Xpath,Chropath,我正在尝试使用selenium获取易趣物品上的日期(请参见图中日期的绿色方框),并通过xpath查找元素,但我遇到了一个难题。我想知道每个清单的日期。我正在使用Python和Firefox浏览器 我想我可以做到以下几点: date_x = (driver.find_element_by_xpath("(//span[@class='s-item__ended-date s-item__endedDate'])[2]").text) 但它不起作用。不知道如何抓住每一个日期,是

我正在尝试使用selenium获取易趣物品上的日期(请参见图中日期的绿色方框),并通过xpath查找元素,但我遇到了一个难题。我想知道每个清单的日期。我正在使用Python和Firefox浏览器

我想我可以做到以下几点:

date_x = (driver.find_element_by_xpath("(//span[@class='s-item__ended-date s-item__endedDate'])[2]").text)
但它不起作用。不知道如何抓住每一个日期,是否有什么我做错了或更容易做到这一点;如果有人能提供建议,我们将不胜感激


你的问题对我来说有点不清楚,我不确定你是想要一个具体的日期还是页面上的每个日期。每次约会我都会给你一个解决方案。我发现按类名搜索更简单,也更方便

for element in driver.find_elements_by_class_name('s-item__time-end'):
    print(element.text)
我进入易趣,它对我来说有点不同,也就是说,结束日期的类别不同,所以我使用了它,但您可以根据需要更改为所需的类别。此外,您可能希望将其存储在阵列中,而不是打印

dates = []
for element in driver.find_elements_by_class_name('s-item__time-end'):
    dates.append(element.text)
至于您提交的代码,有一个语法错误。应该是:

date_x = driver.find_element_by_xpath("(//span[@class='s-item__ended-date s-item__endedDate'])[2]"), at least as far as I'm concerned. 
  • 为所有日期编写公共XPath
  • 要获取所有日期,必须使用find_元素
  • 然后遍历所有元素,并使用text方法获取日期值

  • 我尝试了你所做的,但出于某种原因,它仍然不起作用。不确定问题可能是什么,我在Mac OS上使用Firefox,不确定这是否有区别。是否有关于何时可以在之后使用“[1]”的规则?我过去曾在一个div[…][1]中使用过它,它已经起作用了,所以我很困惑为什么它不再起作用了。你调整了你要找的课程了吗?另外,tbh,我自己也是一个新手,而且我对XPath缺乏经验,这就是为什么我给了您一个按类查找名称()的解决方案,因为它更简单,至少是为了提取相同的元素。也许如果你给我一个链接到你正在查看的确切页面,我可以尝试进一步帮助你,因为我不一定得到完全相同的格式/html。我不知何故得到了它的工作,我认为在某个地方有语法错误,因为我写出来很慢,它再次工作。谢谢你的帮助,非常感谢
    date\ux=(driver.find\u element\u by_xpath((//span[@class='s-item\uu end-dates-item\uu endedDate'])[“+str(item+1)+”]”).text)
    I使用item作为变量,但基本上是[1]、[2]等