2016-11-16 2 views
0

Ich habe ein paar Probleme mit einer Xpath-Auswahl.Xpath Auswahl des Kontrollkästchens für vorhergehende Geschwister in Div der generierten Tabelle

Ich bin derzeit C# und Selen

Ich versuche, ein Problem zu überwinden, wodurch ich muss wählen Sie eine Checkbox innerhalb einer generierten Tabelle mit, während nur eine Textzeile in einem vorhergehenden Geschwister Div kennen. Alle IDs können sich ändern, wenn sie zufällig generiert werden.

Ich möchte Klasse auszuwählen = „jqx-Checkbox-Check-geprüft“, während nur den Text „Testdaten“ Wissen

<div role="row" style="position: relative; height:28px;" id="row1jqxgrid"> 
    <div role="gridcell" style="left: 0px; z-index: 790; width:30px;" class="jqx-grid-cell jqx-item jqx-grid-cell-alt jqx-grid-cell-selected jqx-fill-state-pressed"> 
     <div style="position: absolute; top: 50%; left: 50%; margin-top: -7px; margin-left: -10px; overflow: visible; cursor: auto;" id="jqxWidget3af6ac8d" tabindex="0" class="jqx-widget jqx-checkbox"> 
      <div class="jqx-checkbox-default jqx-fill-state-normal jqx-rc-all"> 
       <div style="width: 13px; height: 13px;"><span style="width: 13px; height: 13px;" class="jqx-checkbox-check-checked"></span></div> 
      </div> 
      <div style="clear: both;"></div> 
     </div> 
    </div> 
    <div role="gridcell" style="left: 30px; z-index: 789; width:25px;display: none;" class="jqx-grid-cell"></div> 
    <div role="gridcell" style="left: 30px; z-index: 789; width:200px;" class="jqx-grid-cell jqx-item jqx-grid-cell-alt jqx-grid-cell-selected jqx-fill-state-pressed"> 
     <div class="jqx-grid-cell-left-align" style="margin-top: 6px;"><a id="id_01" href="/test/testing?id_01=199">testdata</a></div> 
    </div> 
</div> 
+0

Versuchen Sie '// div [div [div [Text() =" Testdaten "]]]] // div/span' – Andersson

Antwort

0

Sie können versuchen, die row auszuwählen, die überall die Zeichenfolge enthält testdata und daß row Wählen Sie div mit der benötigten Klasse.

wäre ein erster Versuch sein:

//div[@class='row'][.//div[text()='testdata']]//span[@class='jqx-checkbox-check-checked'] 

Dies ist der einfachste Weg wäre.

0

Sie können Element auswählen, mit testdata, gehen Sie zu den Vorfahren div und dann umspannen gehen, dass Sie benötigen:

//*[text()='testdata']/ancestor::div[@role='row']//span 

Sie können auch calss oder einen Teil der Klasse der Spanne angeben Sie brauchen:

//*[text()='testdata']/ancestor::div[@role='row']//span[contains(@class,'checked')] 

//*[text()='testdata']/ancestor::div[@role='row']//span[@class = 'jqx-checkbox-check-checked'] 
Verwandte Themen