大家好,
我有下表,其中包含我需要选择的链接。在这个具体的例子中,我需要选择DIY薪资,但有时这可以改变它在表格中的位置。当前的xpath是:
.//* [@ ID = '目录类别-DIV-1'] /表/ tbody的/ TR / TD 1 / UL /锂[4] / A
所以我做了一个:
By.xpath(".//*[@id='catalog-category-div-1']/table/tbody/tr/td[1]/ul/li[4]/a").click()
但问题在于它可以在td [2]或td [3]和li [n'th postion]中改变位置
我可以让硒经过表格并根据文字点击它。 By.linktext()可以在这里工作吗?
答案 0 :(得分:1)
我建议您尝试By.linkText()
或By.partialLinkText()
。它将找到包含所需文本的A
标记。
driver.findElement(By.linkText("DIY Payroll")).click();
您可能遇到的几个问题:
链接文字可能在网页上多次出现。在这种情况下,找到一个易于查找的元素(例如,通过id),该元素只是您想要的链接的父级,然后从该元素中搜索。
driver.findElement(By.id("someId")).findElement(By.linkText("DIY Payroll")).click();
A
代码可能包含额外的空格,其他字符,大写等。在这种情况下,您只需尝试使用.partialLinkText()
或反复试验。
在某些情况下,我发现某个链接不是A
标记或其中包含其他标记。在这种情况下,您将不得不找到另一种方法来定位文本,如XPath。
答案 1 :(得分:1)
您可以使用以下代码,这些代码将处理动态更改。
driver.findElement(By.linkText(“DIY Payroll”))。click();
如果您想使用xpath,则可以使用以下代码。
driver.findElement(By.xpath(.// a [contains(text(),'DIY Payroll'))。click();
如果您需要进一步澄清,欢迎您:)
答案 2 :(得分:0)
在这种情况下你应该使用CSS选择器: 你能尝试一下:
By.CssSelector("a.browse-catalog-categories-link")
答案 3 :(得分:0)
您可以使用XPath执行此操作。 // a将选择所有'a'标签。方括号内的部分将使用文本“DIY Payroll”选择所有内容。结合在一起,您就可以获得所需的解 // a [包含(text(),'DIY Payroll')]