2016-05-31 12 views
-2

Ich versuche, die ID eines Elternelements (Grand-Grand-Parent) zu erhalten.Robot Framework: Wie bekomme ich XPath von einem Element?

Alle Informationen die ich habe ist, dass // div [@ class = "preset_name"] "all" ist. Da ich das weiß, muss ich "preset_3" (als String) unter Verwendung eines beliebigen Robot Framework-Schlüsselworts abrufen. Wie würde ich das tun? Oder wie kann ich den vollständigen XPath von "All" erhalten?

<table id="preset_list"> 
 
    <tbody> 
 
    <tr id="preset_0"> 
 
     <td> 
 
     <div class="preset_title_line"> 
 
      <div class="preset_button_group"> 
 
      <button class="preset_button">Apply</button> 
 
      </div> 
 
      <div class="preset_name">Factory default</div> 
 
     </div> 
 
     <div class="preset_sections">System, Network, Sources, EDID, Channels, Automatic File Upload, Touch screen, Output ports</div> 
 
     </td> 
 
    </tr> 
 
    <tr id="preset_1"> 
 
     <td> 
 
     ...

+1

zu OP: Bitte, nie XML/HTML-Post (oder irgendeine Art von Codes) als Bild. Veröffentlichen Sie stattdessen den Text. Letzteres ist nützlicher, da Leute es verwenden können, um ihren XPath gegen zu testen. Danke – har07

+0

Zeigen Sie uns, was Sie versucht haben. Das sieht nach einem relativ einfachen Problem aus, das mit einem einfachen xpath-Ausdruck gelöst werden kann. –

Antwort

0

sollte Ihr XPath sein:

Get Element Attribute xpath=(//div[@class="preset_name"][text()='all']/../../..)@id 

(Ich habe noch nie Roboter verwendet, aber ich denke, es ist die richtige sintax ist)

+0

Ihnen fehlt ein Leerzeichen nach "Get Element Attribute" - in dieser Robotersyntax werden Schlüsselwörter und Argumente durch zwei oder mehr Leerzeichen getrennt. –

+0

@BryanOakley danke, ich habe den Code –

+0

@StriterAlfa Vielen Dank! –

0

Sie tr filtern das enthält //div[@class="preset_name"] = "all" und gibt dann das entsprechende id Attribut zurück:

//tr[.//div[@class='present_name'] = 'all']/@id 
+0

Vielen Dank! –