2016-11-03 6 views
0

hier zu finden, ist mein HTML-Code:Unable XPath

enter image description here

ich zum tr gehen will, wo das Etikett CompanyID ist und den td Text erhalten, die 512.571 (letzte Zeile) ist. Wie kann ich das erreichen?

Hier ist, was ich versucht:

driver.find_element_by_xpath ('// Label [enthält (text() "CompanyID")]') Text

+0

Ich will nicht Id verwenden möchten verwenden – user5653362

Antwort

1

sollte folgende XPath arbeiten:

//th[label[contains(text(),'CompanyId')]]/following-sibling::td 

Relevante Codezeile:

driver.find_element_by_xpath("//th[label[contains(text(),'CompanyId')]]/following-sibling::td").text 

Hinweis: Die XPath wird das erste Auftreten eines td wählen standardmäßig - in diesem Fall CompanyID sieht aus wie ein Label, dem sofort die gesuchten Daten folgen. Man könnte immer einen Index von Ihnen immer die erste td

//th[label[contains(text(),'CompanyId')]]/following-sibling::td[1] 
1

Sie Eltern gehen können tr davon. beschriften und dann untergeordneten Knoten vom Typ td.

driver.find_element_by_xpath('//label[contains(text(), "CompanyId")]//parent::tr/td').text 

, dass es unter der Annahme, ist nur ein td in diesen tr.

+0

Es wird geben - erhöhen exception_class (Meldung, Bildschirm, stacktrace) selenium.common.exceptions.NoSuchElementException: Nachricht : kein solches Element: Element kann nicht gefunden werden: {"method": "xpath", "selector": "// label [enthält (text()," CompanyId ")]/elter :: tr/td"} – user5653362

+0

auch es gibt nur eine td – user5653362

+0

versuchen mit doppelten Schrägstrichen vor dem Elternteil. aktualisierte Antwort. – falloutcoder