我不熟悉Selenium,使用Java(Eclipse),在使用firebug时,我在计算xpath时遇到了问题

我不熟悉Selenium,使用Java(Eclipse),在使用firebug时,我在计算xpath时遇到了问题,java,xpath,selenium,Java,Xpath,Selenium,当我使用firebug时,我得到这个作为xpath,它返回这个/html/body/div[5]/div[2]/div/div[7]/div/div[4]/div/div[2]/div/ol/li/div/h3/a 我不清楚如何在SeleniumWebDriver中使用它来单击链接 谢谢 文档中详细介绍了这一点 但是,因为这是一个非常简单的答案,您只需执行以下操作: driver.findElement(By.xpath("div[5]/div[2]/div/div[7]/div/div[4]

当我使用firebug时,我得到这个作为xpath,它返回这个/html/body/div[5]/div[2]/div/div[7]/div/div[4]/div/div[2]/div/ol/li/div/h3/a

我不清楚如何在SeleniumWebDriver中使用它来单击链接


谢谢

文档中详细介绍了这一点

但是,因为这是一个非常简单的答案,您只需执行以下操作:

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
部分-它不是必需的)。

始终尝试简化xpath,尝试将firebug与此xpath结合使用,看看它是否唯一,如果不是,您需要更具体一点

"//h3/a"

不要不必要地使用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..等)可用于锚定标记,则可以使用上述任何属性