Java 如何在SeleniumWebDriver中查找动态元素的Xpath

Java 如何在SeleniumWebDriver中查找动态元素的Xpath,java,selenium,xpath,selenium-webdriver,Java,Selenium,Xpath,Selenium Webdriver,当有更多的添加任务并且我无法找到唯一的Xpath时,如何单击特定的“添加任务”链接 在本例中,添加任务在添加新项目时出现,因此每次生成新的添加任务时。据我所知,您需要根据项目名称找到“添加任务”链接。项目名称节点在屏幕截图上没有展开,但我假设那里也有一个a元素: String projectName = "qrr"; driver.findElement(By.xpath("//tr/td[a = '" + projectName+ "']/following-sibling::td/a[.

当有更多的添加任务并且我无法找到唯一的Xpath时,如何单击特定的“添加任务”链接


在本例中,添加任务在添加新项目时出现,因此每次生成新的添加任务时。

据我所知,您需要根据项目名称找到“添加任务”链接。项目名称节点在屏幕截图上没有展开,但我假设那里也有一个
a
元素:

String projectName = "qrr";
driver.findElement(By.xpath("//tr/td[a = '" + projectName+ "']/following-sibling::td/a[. = 'add tasks']"));
这是为了找到
qrr
项目名称的“添加任务”按钮

或者,您可以找到相应的行并使用“按链接文本”定位器:


您可以使用路径,但我建议使用CSS选择器嵌入路径。CSS选择器比Path更快。要学习CSS选择器,您可以使用。

我使用了以下代码,它工作得非常好

String ProjectName = "qrr";

driver.findElement(By.xpath(“//tr/td/a[contains(text(),“+ProjectName+”))]/concenter::tr[2]/td[2]/a[contains(text(),“add tasks”)))))。单击()

感谢您回复alecxe,事实上,条件是每当我们创建新项目时,“添加任务”链接都会以相同的名称添加,即“添加任务”,因此无法使用链接文本或Xpath,因为它不会选择正确的链接文本或Xpath,因为所有项目都具有相同的“添加任务”名称(请参阅屏幕截图)。如何定位不同项目的特定添加任务。屏幕截图的分辨率太低。你能给我们提供一个更好的吗?或者你可以在你的问题中复制HTML。@ChandanKumar我实际上提供了一种基于项目名称定位“添加任务”的方法。“这不是你想问的吗?”Thiagoprocciúncula-请放大它以获得更好的视野。我相信@alecxe回答了这个问题。
String ProjectName = "qrr";