2017-05-12 4 views
1

Ich habe Schwierigkeiten beim Schreiben des xpath für dieses Codebit. Ich versuche, meinen XPath mit @class anstelle von @id zu schreiben, da die IDs von Produkt zu Produkt wechseln könnten. HierXPath, das der Klasse eines Elternteils entspricht

ist die XPath-I erstellt:

/td[@class='dataCell ']/table/tbody/tr[2]/td/span/select[@class='user-success']//option[2]/text() 

Hier ist das Segment des Code Ich arbeite mit:

<td class="dataCell " id="j_id0:j_id1:j_id6:section2:j_id34:j_id35:j_id67:j_id68:0:j_id138:j_id139:0:j_id216" colspan="1"><table> 
<tbody> 
<tr> 
<td><select class="dropLogic user-success" id="j_id0:j_id1:j_id6:section2:j_id34:j_id35:j_id67:j_id68:0:j_id138:j_id139:0:j_id219" name="j_id0:j_id1:j_id6:section2:j_id34:j_id35:j_id67:j_id68:0:j_id138:j_id139:0:j_id219" onchange="requireSaving();"><option value="">--None--</option><option value="100% Loss">100% Loss</option> 
<option value="Recoverable">Recoverable</option> 
<option value="Internal">Internal</option> 
<option value="Supersede">Supersede</option> 
<option value="Continue Service">Continue Service</option> 
<option value="Expire">Expire</option> 
</select></td> 
</tr> 
<tr> 
<td><span><select id="j_id0:j_id1:j_id6:section2:j_id34:j_id35:j_id67:j_id68:0:j_id138:j_id139:0:j_id222" name="j_id0:j_id1:j_id6:section2:j_id34:j_id35:j_id67:j_id68:0:j_id138:j_id139:0:j_id222" class="user-success"><option value="">--None--</option><option value="Bankruptcy">Bankruptcy</option><option value="Property no longer exist">Property no longer exist</option></select></span></td> 
</tr> 
</tbody> 
</table> 
</td> 

Antwort

2

Hauptproblem ist ein Abstand Problem; verwenden normalize-space():

/td[normalize-space(@class)='dataCell']/table/tbody/tr[2]/td/span/select[@class='user-success']/option[2]/text() 

Bankruptcy auszuwählen, wie beabsichtigt.

Hinweis, möchten Sie vielleicht weiter gehen und eine even more robust technique to match when there could be multiple classes jetzt oder in Zukunft anwenden.

+0

Vielen Dank für den Kommentar. Ich habe diesen xpath probiert und bekomme immer noch einen Null-Wert anstelle der 'Bankruptcy'-Auswahl. Noch mehr Ideen? Danke – Darrell

+0

** 1. ** Stellen Sie selbst fest, dass der XPath, den ich Ihnen zur Verfügung gestellt habe, für das genaue HTML-Segment funktioniert, das Sie bereitgestellt haben. (It does.) ** 2. ** Untersuchen Sie sorgfältig, wie sich das von Ihnen bereitgestellte HTML-Beispiel von Ihrem tatsächlichen HTML unterscheidet oder wie die Art, wie Sie den XPath anwenden, falsch ist. (Ihr veröffentlichtes Problem repräsentiert nicht Ihr tatsächliches Problem.) – kjhughes

Verwandte Themen