python - 如何使用 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
解决方案
您使用的 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
推荐阅读
- java - 我需要将 fldValue 的值分配给 sipNumber。在下面编写的代码中将在哪里完成?
- firebase-realtime-database - Dialogflow 或 Firebase 执行缓慢
- c++ - 自定义迭代器是否有正式的要求列表?
- string - 当它被点击时改变字符串内的单个字符样式
- regex - 在 csv 文件中使用正则表达式去除零
- tableau-api - Tableau:计算最后 3 条记录的平均值
- java - 尝试在多个实例上运行批处理作业时出现 DuplicateKey 异常
- c++ - 使用模板类作为 std::map 中的值时出现成员函数错误
- javascript - 如何在JSP中的以下场景中跳过双引号而不使用单引号
- c# - C# 中的交互式图表 - 通过鼠标单击设置光标