So hier ist der gegenwärtige XPath, den ich versuche zu verwenden.Konnte Element wegen eines dynamischen xpath nicht finden
//*[@id="highcharts-33"]/svg/g[3]/g[1]/text
Das Problem ist, dass dies ein dynamischer XPath ist, so geht es wie "highcharts-33", "highcharts-34" etc ... Ich mache Screenshots von Thesen Graphen, indem Sie auf ein Kontrollkästchen klicken. Jedes Mal, wenn das Kontrollkästchen aktiviert/deaktiviert ist, haben die nächsten Diagramme eine andere ID.
Hier ist der Fehler, den ich in der cmd bekommen bin:
NoSuchElementException: Nachricht: Kann Element suchen: { "Methode": "XPath", "Selektor": "// * [enthält (@ ID, 'highcharts -')]/svg/g [3]/g [1]/text "}
Sie können hier sehen, ich versuche zu verwenden" enthält ". Ich habe auch versucht, "Starts mit" zu verwenden, aber ich kann den Graphen immer noch nicht finden.
Hier sind die Dinge, die ich versucht habe:
textvote = self.driver.find_element_by_xpath("//*[contains(@id,'highcharts-')]/svg/g[3]/g[1]/text").text
textvote = self.driver.find_element_by_xpath("//*[starts-with(@id,'highcharts-')]/svg/g[3]/g[1]/text").text
ich auf Stack-Überlauf gesucht und sah auf sich einige Themen, und es wurde immer beginnt mit-/ enthält oder ein unbeantwortetes Thema. Also benutze ich starts-with/contains wrong.
Wenn Sie möchten, dass ich mehr Code teile, zögern Sie nicht. Danke.
Edit: Hinzufügen relevent HTML
<div id="chartListContainer">
<div id="chart0" class="gauge-chart" data-highcharts-chart="16"><div class="highcharts-container" id="highcharts-33"
<div class="highcharts-container" id="highcharts-33"
<svg version="1.1"
<g class="highcharts-data-labels highcharts-tracker"
<g zIndex="1"
<text x="0" zIndex="1" style="font-size:30px;font-family:Open Sans;color:#1abb1a;fill:#1abb1a;" y="32"><tspan>80.0% (4 votes)</tspan></text>
Ich versuche, den Text aus der letzten Zeile zu extrahieren.
die relevent html hinzufügen auch mit ein oder zwei Ebenen über – Grasshopper
Müssen Sie Ihre HTML auch teilen .. –
Bitte fügen Sie die HTML des Elements. – Dalvenjia