使用python和selenium从svg中提取文本

使用python和selenium从svg中提取文本,selenium,python-behave,Selenium,Python Behave,在此处输入图像描述 我提出了这个xpath:-“/[local-name()='text'和@style='text-anchor:middle;fill:rgb(0,32,96);字体系列:Calibri;字体大小:40px;空白:pre;']/[local-name()='title']” 这给了我3个元素,我不需要提取,但无法得到比这个更独特的元素。 有人能帮忙吗 谢谢如果您试图只查找这3个元素/金额字段,我建议您可以尝试以下CSS选择器,应该可以 svg[class='card'][ar

在此处输入图像描述

我提出了这个xpath:-“/[local-name()='text'和@style='text-anchor:middle;fill:rgb(0,32,96);字体系列:Calibri;字体大小:40px;空白:pre;']/[local-name()='title']”

这给了我3个元素,我不需要提取,但无法得到比这个更独特的元素。 有人能帮忙吗


谢谢

如果您试图只查找这3个元素/金额字段,我建议您可以尝试以下CSS选择器,应该可以

svg[class='card'][aria-label*='PaymentReceived'] title


svg[class='card'][aria-label*='Change%'] title


svg[class='card'][aria-label*='ChangeFromPrevious'] title

尝试使用:

var element = document.querySelectorAll('svg>title')
element[9].textContent
在selenide和Java中,我是这样使用它的:

element.getAttribute("textContent").contains("your text")

您应该共享原始HTML注释,而不是共享图像。并突出显示它正在返回的3个元素。你能试试这个吗:
//svg[@class='card']//title
很难共享整个源代码我可以共享我得到的3个元素svg的名称或本地名称至少你可以以文本格式共享你在图像中共享的HTML。还可以共享已标识的其他两个元素的HTML。您的Xpath-/[local-name()='text'和@style='text-anchor:middle;fill:rgb(0,32,96);字体系列:Calibri;字体大小:40px;空白:pre;']/[local-name()='title']看起来很脆弱,很可能有占位符元素返回3个元素,但它们不会被填充。在这种情况下,最好选择标签,因为它也可能是您需要从中获取数据并进行填充的元素。