我是Selenium的新手,使用Java(Eclipse),我在使用firebug时遇到了解决xpath的问题

时间:2013-04-25 18:27:41

标签: java xpath selenium

当我使用firebug时,我将它作为xpath返回给我这个/ html / body / div [5] / div [2] / div / div [7] / div / div [4] / div / DIV [2] / DIV /醇/ LI / DIV / H3 / A

我不清楚如何在Selenium Webdriver中使用它来点击链接。

谢谢!

3 个答案:

答案 0 :(得分:1)

文档中详细介绍了这一点。

http://docs.seleniumhq.org/docs/03_webdriver.jsp#selenium-webdriver-api-commands-and-operations

然而,因为它是一个非常简单的答案,你只需做一些像:

driver.findElement(By.xpath("div[5]/div[2]/div/div[7]/div/div[4]/div/div[2]/div/ol/li/div/h3/a"));

(假设driver是一个有效的WebDriver实例,我省略了html/body部分 - 不需要它。)

答案 1 :(得分:0)

总是尝试简化xpath,尝试使用带有此xpath的firebug来查看它是否是唯一的,如果不是,则需要更具体一些。

"//h3/a"

答案 2 :(得分:0)

不要不必要地使用xpath。这将在未来产生一些问题。如果没有其他方法可以找到该元素,因为@Nora告诉尝试简化xpath。

在您的情况下,您可以使用By.linkText,By.partialLinkText。

driver.findElement(By.linkText("linkName")).click();

driver.findElement(By.partialLinkText("partialTextOfLink")).click();

driver.findElement(By.xpath("//a[text()='LinkText']")).click(); //simplified xpath

如果没有其他属性(id,name ..等)可用于该锚标记,则可以使用上述任何一种。