2016-07-30 21 views
0

Ich versuche, mein Skript auf eine Schaltfläche namens Eingabe Antwort in derselben Zeile wie ein bestimmter Text (SID) klicken. Ich bin in der Lage, beide getrennt zu finden, aber ich kann nicht scheinen, dass beide gleichzeitig arbeiten.Selenium IDE Klicken Sie auf eine Schaltfläche in einer Zeile durch den Text identifiziert

Die Tabelle ist dynamisch, also verwende ich die SID, finde ihre Zeile und möchte dann auf die Antwort-Schaltfläche klicken. I.E. Suche nach dem Text '123456' & klicke auf 'Antwort eingeben' in der gleichen Zeile.

Ich versuchte dies, aber bekomme einen Fehler Locator nicht gefunden: // tr/td/a [@ class = 'title-abbr' und text() = '123456']/folgende-Geschwister :: td/a [text() = 'Enter Antwort']

Tabelle Zeilenköpfe: Titel/Quelle/Source-ID/SID/Erstellungsdatum/(Antwort Enter-Taste)/Formulartyp

<tr> 
    <td class="t-Report-cell" headers="TITLE_ABBR">this is my title</td> 
    <td class="t-Report-cell" headers="SOURCE_NAME">source1</td> 
    <td class="t-Report-cell" headers="SOURCE_NUMBER">142417</td> 
    <td style="background-color: rgb(13, 13, 13);" class="t-Report-cell" headers="SID_ABBR"> 
     <a href="javascript: void(0);" title="123456" class="title-abbr" style="text-decoration: none; background-color: transparent;">123456</a> 
    </td> 
    <td class="t-Report-cell" headers="TRANSACTION_DATE">07/28/2016</td> 
    <td style="background-color: rgb(13, 13, 13);" class="t-Report-cell" headers="LINK" align="center"> 
     <a style="background-color: rgb(0, 255, 255);" class="response-btn" href="f?p=58117:50:27077013481519::NO::P50_TRIGGER_ID:321860">Enter Response</a> 
    </td> 
    <td class="t-Report-cell" headers="FORM_TYPE">Questions</td> 
</tr> 

Jede mögliche Hilfe sehr geschätzt werden!

Antwort

0

wenn ich recht habe, sollten Sie zunächst auf den übergeordneten Knoten zu erhalten, bevor Sie versuchen, um zum nächsten Geschwister zu bekommen .... weil „ein“ Element hat kein Geschwister, also im Grunde so etwas wie die:

// tr/td/a [@ Klasse = 'Titel-Abbr' und Text() = '123456'] /../ Folge-Geschwister :: td/a [Text() = 'Antwort eingeben']

Du könntest auch following-sibling :: td [2] verwenden, anstatt im zweiten Teil von xpath nach Text zu suchen, aber vielleicht brauchst du es aus irgendeinem Grund.

Btw einige Tipps:

  • Wenn das Element mehrere Stilklassen haben könnte, werden Sie verwenden müssen, enthält
  • Gleiches gilt für Text gilt, passen sie von Räumen usw. Sie den Text oder die Verwendung trimmen sollte enthält, um falsche Wähler zu vermeiden
+0

Vielen Dank !! Es hat wunderbar funktioniert :) und danke für die Erklärung und die Tipps. Es macht jetzt viel mehr Sinn! – autojay