2011-01-07 11 views
0

Ich habe eine JSP-Seite mit Javascript gefüllt, was zu einer typischen Tabellenelement-Kaskade <table><tbody><tr><td> führt. Nach Bevölkerung sehe ich den Text, den ichFindet Tabellenzelle mit Locator nachdem TableCellAddress die Zelle findet

getTable("tableLister.listTable.1.1") 

Die Tabelle auch eine class=clsDisplayTableBody hat mit wollen.
Ich möchte auf das Kontrollkästchen in Spalte 0 für die Zeile von Interesse klicken. Alle diese Tests schlagen jedoch fehl

isElementPresent("//*[text()="+cellContents+"]/../td[0]")) 
isElementPresent("//table[@class='clsDisplayTableBody']//tr[1]/td[0]")) 
isElementPresent("css='clsDisplayTableBody' tr:nth-child(1) td:nth-child(0)")) 
isElementPresent("//xpath=id('tableLister.listTable')/descendant::tr[1]/descendant::td[0]")) 
isElementPresent("//table[@id='tableLister.listTable']//tbody/tr[1]/td[0]")) 
isElementPresent("//table[@id='tableLister.listTable']//tr[1]/td[0]")) 

Gibt es noch etwas, das ich versuchen könnte?

+0

Sie haben kein XML-Dokument zur Verfügung gestellt, wie denken Sie, jeder kann verstehen, was diese Ausdrücke sollen auszuwählen? –

+0

Gute Frage, +1. Eine Erklärung zu einem der Probleme mit allen XPath-Ausdrücken finden Sie in meiner Antwort. –

+0

Ich stimme nicht zu. Diese Frage ist nicht klar definiert. Downvote gehört mir. – Flack

Antwort

2

Ich möchte auf das Kontrollkästchen in Spalte 0 für die Zeile von Interesse klicken. jedoch nicht alle diese Tests

isElementPresent("//*[text()="+cellContents+"]/../td[0]")) 
isElementPresent("//table[@class='clsDisplayTableBody']//tr[1]/td[0]")) 
isElementPresent("css='clsDisplayTableBody' tr:nth-child(1) td:nth-child(0)")) 
isElementPresent("//xpath=id('tableLister.listTable')/descendant::tr[1]/descendant::td[0]")) 
isElementPresent("//table[@id='tableLister.listTable']//tbody/tr[1]/td[0]")) 
isElementPresent("//table[@id='tableLister.listTable']//tr[1]/td[0]")) 

Ein offensichtlicher Fehler 0 als Index verwendet. XPath ist 1-basiert.

können Sie näher das gewünschte Ergebnis zu erhalten, nachdem Sie die Indizes erhöhen, indem 1.