2011-01-07 2 views
0

일반적인 테이블 요소 캐스케이드 <table><tbody><tr><td>을 초래하는 JavaScript로 채워진 JSP 페이지가 있습니다. 인구 후 나는 테이블도 class=clsDisplayTableBody있다tableCellAddress가 셀을 찾은 후 로케이터를 사용하여 테이블 셀 찾기

getTable("tableLister.listTable.1.1") 

사용하여 원하는 텍스트를 참조하십시오.
관심있는 열의 0 열의 확인란을 클릭하고 싶습니다. 그러나이 테스트는 모두 실패합니다.

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]")) 

내가 시도할만한 것이 있습니까?

+0

하여 인덱스를 증가 후 원하는 결과를 얻기에 가까운 될 수있다, 당신은 어떻게 사람이이 표현을 선택하기위한 것입니다 이해할 수 있다고 생각합니까? –

+0

좋은 질문입니다, +1. 모든 XPath 표현식의 문제점 중 하나에 대한 설명은 내 대답을 참조하십시오. –

+0

나는 동의하지 않는다. 이 질문은 잘 정의되어 있지 않습니다. Downvote 내 꺼야. – Flack

답변

2

해당 행에 대해 열 0의 확인란을 클릭하고 싶습니다. 그러나 이러한 모든 테스트는

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]")) 

한 명백한 오류가 인덱스로 0을 사용하고 실패합니다. XPath는 1 - 기반입니다.

당신은 당신은 어떤 XML 문서를 제공하지 않은 1

관련 문제