我不熟悉Selenium,使用Java(Eclipse),在使用firebug时,我在计算xpath时遇到了问题
当我使用firebug时,我得到这个作为xpath,它返回这个/html/body/div[5]/div[2]/div/div[7]/div/div[4]/div/div[2]/div/ol/li/div/h3/a 我不清楚如何在SeleniumWebDriver中使用它来单击链接我不熟悉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]
谢谢 文档中详细介绍了这一点 但是,因为这是一个非常简单的答案,您只需执行以下操作:
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..等)可用于锚定标记,则可以使用上述任何属性