XPath text after element

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Ernie1412
User
Beiträge: 160
Registriert: Freitag 10. Januar 2020, 20:38

folgendes:

Code: Alles auswählen

<div class="update-info-row">
  <i class="fa fa-calendar">
  </i> 
  <strong>Added:</strong> January 30, 2023
</div>
wie kann ich xpath verwenden damit ich " January 30, 2023" bekomme ?

Code: Alles auswählen

//div[@class='update-info-row']
<-- bekomme ich Added: immer mit
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Normalisiert, also weitere Tags im Ziel sind entfernt und der Inhalt des divs wird nach dem schließenden </strong> bis zum Ende des divs gelesen und auch der abschließende Zeilenumbruch entfernt:

Code: Alles auswählen

normalize-space(//div[@class="update-info-row"]/strong/following-sibling::text())
Ernie1412
User
Beiträge: 160
Registriert: Freitag 10. Januar 2020, 20:38

da bekomme ich das:
Aufruf mit:

Code: Alles auswählen

Zeit=driver.find_element(By.XPATH,ErstellDatum)
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression normalize-space(//div[@class="update-info-row"]/strong/following-sibling::text()) because of the following error:
TypeError: Failed to execute 'evaluate' on 'Document': The result is not a node set, and therefore cannot be converted to the desired type.
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Es ist auch kein Node oder Nodeset sondern Text.
Wenn Selenium das nicht kann, solltest du dir das per Stringoperationen aus dem ursprünglichen Ergebnis holen.
Antworten