java - 为selenium测试编写xpath以及它们之间的区别

标签 java facebook xpath selenium-webdriver

我为facebook的“注册”按钮编写了xpath,如下所示:

driver.findElement(By.xpath("//*[@id='u_0_7']")).click();
driver.findElement(By.xpath(".//*[@id='u_0_7']")).click();//there is a dot (.) before //

两者都运行良好。上面提到的两个xpath有什么区别?

最佳答案

//查找所有匹配 *[@id='u_0_7'] 的元素在整个文档中。

.//查找所有匹配 *[@id='u_0_7'] 的元素在当前情况下。

在您的示例中,没有区别,因为 driver.findElement(By)具有全局背景。

但是你可以调用findElement(By)WebElement上,例如

driver.findElement(By.xpath("//table")).findElement(By.xpath("//ul"));

会找到所有 <ul>整个文档中都有 s ,显然不是有意的。但是使用

driver.findElement(By.xpath("//table")).findElement(By.xpath(".//ul"));

会找到所有 <ul>是第一个找到的 child <table> ,就像它的意图一样。

关于java - 为selenium测试编写xpath以及它们之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17852097/

相关文章:

java - Byte Buddy installOn API 给出错误 : adding retransformable transformers is not supported?

java - 生成局部变量以接收eclipse方法的返回值

java - 在哪里可以找到有关 Java SimpleFormatter 格式字符串的文档?

javascript - Facebook 帖子中的 RTL 文本重新排序单词

java - Buck - java.lang.UnsatisfiedLinkError : couldn't find "libjni.so". 如何解决?

c# - 通过 XPath 使用 HtmlAgilityPack 从 html 文档获取文本

XSLT 函数获取节点的 xpath

Java AES密文大小

facebook - LinkedIn/Twitter/Facebook 作为 OAuth 和 OpenId 使用

xpath - Xquery 提取 html 中的文本