【发布时间】:2020-07-28 06:55:13
【问题描述】:
我正在尝试使用 selenium 从类标签中获取文本,但我有点走到了死胡同。所有类名都是相同的“legend-row”,但我只需要第三个,即具有“1.09TB”文本的那个。
我试图通过 xpath 找到元素,但没有运气,我设法从这些类中获取值的唯一方法是使用下面的代码行
driver.find_element_by_class_name("legend-row").text
这让我得到了所有的文本,134.46Tb、8.96TB、1.09TB 和 90% 的阈值。 有什么办法只能查询第三个吗?请参阅下面来自 URL 的类
<g class="legend" style="font-size: 14px;">
<g class="legend-row" transform="translate(102,-32.400000000000006)">
<rect y="-30.599999999999998" width="14" height="14" style="fill: rgb(125, 123, 140); stroke: rgb(125, 123, 140);"/>
<text x="18" y="-18">Allocated:</text>
<text x="109.421875" y="-18"> 134.46 TB</text>
</g>
<g class="legend-row" transform="translate(102,-10.800000000000004)">
<rect y="-30.599999999999998" width="14" height="14" style="fill: rgb(110, 37, 133); stroke: rgb(110, 37, 133);"/>
<text x="18" y="-18">Spare:</text>
<text x="109.421875" y="-18"> 8.96 TB</text>
</g>
<g class="legend-row" transform="translate(102,10.799999999999997)">
<rect y="-30.599999999999998" width="14" height="14" style="fill: rgb(130, 224, 170); stroke: rgb(130, 224, 170);"/>
<text x="18" y="-18">Unallocated:</text>
<text x="109.421875" y="-18"> 1.09 TB</text>
</g>
<g class="legend-th-row" transform="translate(102,32.39999999999999)">
<text x="0" y="0" class="chart-status-icon" style="font-size: 14px; fill: rgb(242, 175, 0);"></text>
<text x="18" y="0">Threshold Level: 90%</text>
</g>
</g>
感谢您的帮助,
【问题讨论】:
-
能否请您指向我们的 URL,以便我们进行调查。
-
嘿@Pythonologist 我正在报废的 url 不向公众开放,它是来自本地网络中服务器的内部 URL。如果我过去这里的源页面会有帮助吗?
-
您对索引号 [3] 的看法是正确的,但由于某种原因无法找到该元素。这是第三个元素的 xpath "//*[@id="sc-storage-center-top-disk-folders_0"]/div/sc-storage-center-top-disk-folders/div/div[2 ]/dui-donut-chart/svg/g/g/g[3]" 但如果我尝试 "driver.find_element_by_xpath("""//*[@id="sc-storage-center-top-disk-folders_0 "]/div/sc-storage-center-top-disk-folders/div/div[2]/dui-donut-chart/svg/g/g/g[3]""").text" 我明白了消息“消息:无法找到元素”
-
这是我从您建议的答案中得到的信息。 "消息:无法定位元素:(//g[@class='legend']/g[@class='legend-row'])[3]"
-
@PeterFranca 正如你提到的
..//dui-donut-chart/svg/g/g/g[3],你能用基于文本的html更新问题吗?
标签: python selenium svg xpath css-selectors