首页 > 解决方案 > 如何使用 python selenium 从具有相同名称的多个类中查找值?

问题描述

我能够从跨度的第一堂课中找到价值。我试图从内部类中找到价值,但它们具有相同的名称。

这是html代码:

<a class="jss1qhutbl jss1jy44eu" href="/quote/nasdaq-cxdc" aria-label="View quote detail page of CXDC" style="width: 60px; text-align: left;">CXDC</a>
<span class="jss1qhutbl jss15180ci" style="width: 80px; text-align: right;">0.9300</span>

<a class="jss1qhutbl jss1jy44eu" href="/quote/nasdaq-arct" aria-label="View quote detail page of ARCT" style="width: 60px; text-align: left;">ARCT</a>
<span class="jss1qhutbl jss15180ci" style="width: 80px; text-align: right;">58.25</span>

我找到了 CXDC 和 ARCT 的名称:

driver.find_element_by_css_selector("a.jss1qhutbl.jss1jy44eu")
driver.find_elements_by_css_selector("a.jss1qhutbl.jss1jy44eu")[1]

在帮助下,我找到了 CXDC 的价格:

driver.find_element_by_xpath("//span[contains(@class,'jss1qhutbl jss15180ci')]").text

但我无法找到 ARCT 的价格:

我试过这个:

driver.find_element_by_xpath('(.//span[@class = "jss1qhutbl jss15180ci"])')[1].text

标签: pythonselenium

解决方案


您使用的 Xpath 是错误的。看看这是否有效

driver.find_element_by_xpath("//span[@class='jss1qhutbl jss15180ci'][1]").text

或者

driver.find_element_by_xpath("//a[contains(@aria-label,'ARCT')]//following::span").text

推荐阅读