我的代码使用哪个定位器?
我尝试使用Xpath,但由于某种原因xpath无法正常工作。 xpath:
//*[@id="ext-gen25"]/table/tbody/tr[1]/td[2]/a
driver.findElement(By.xpath("//*[@id='ext-gen25']/table/tbody/tr[1]/td[2]/a")).click();
<a href="repopulateUser.jsp?authAuthSessionId=6956CCD74D7E4BFEA867561228528EF3&r=eyJyb2xlSWQiOiI0OTg3ZjJmNC05Y2E1LTExZTgtOWEzNy0wMDUwNTY4ODE3ZWYiLCJyb2xlTmFtZSI6IkRhdGEgTWFuYWdlciIsInJvbGVDb2RlIjoiREFUQU1BTkFHRVIiLCJyb2xlR3JwSWQiOiJmNGMxMWNhNy05YzFiLTExZTgtOWEzNy0wMDUwNTY4ODE3ZWYiLCJzdHVkeUlkIjoiYjQ0ODg2ZjgtYWM5ZS0xMWU4LWJiNGItMDA1MDU2ODgxN2VmIiwibW9kdWxlcyI6WyJFWENIQU5HRSJdfQ==" class="labels">Data Manager [eXchange]</a>
通过单击该超链接,系统应导航到X模块。
答案 0 :(得分:0)
如果此Data Manager [eXchange]
文本是唯一的,则可以坚持使用它并省略父表:
//a[text()='Data Manager [eXchange]']
演示:
如果您需要匹配特定行的链接,这会比较棘手,但仍然可能,您将需要共享table代码,以便我们提出正确的表达式,例如喜欢:
//table/tr/td[count(//table/tr/th[.='the header you're looking for']/preceding-sibling::th) + 1]/a[text()='Data Manager [eXchange]']
参考文献:
还请注意Table class的一部分HtmlElements framework,它使处理表变得更加容易