xpath - selenium webdriver 中的高级导航

标签 xpath selenium webdriver selenium-webdriver

我有以下 HTML

  <div id="element1">welcome</div>
  <div>username</div>

现在的问题是,我必须选择“element1”旁边的下一个 div 元素。我知道,我可以从他们的父级构建 xpath。但我需要选择一个非常靠近元素的元素。怎么可能?

最佳答案

使用 the following-sibling axis .

这将选择所有兄弟 <div> element1 之后的元素节点:

id('element1')/following-sibling::div

这将选择第一个兄弟 <div> element1 之后的元素节点:
id('element1')/following-sibling::div[1]

这将选择 element1 之后的第一个兄弟节点节点如果它是 <div>元素:
id('element1')/following-sibling::*[1][local-name(.)='div']

所有这三个示例都将选择您的元素(如果有更多匹配,可能还会选择更多),因此请选择最适合您意图的元素。

请注意,您可以使用 a simple CSS selector 完成所有这些操作。 , 也。它相当于最后一个 XPath。而且会更快。

#element1 + div

关于xpath - selenium webdriver 中的高级导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18462544/

相关文章:

java - Maven 存储库中的 selenium-api-3.0.1.jar 缺少 Selenium WebDriver 3.0.1 Actions 类

selenium - org.openqa.selenium.ElementNotInteractableException : Element <a class ="bg-inverse "> could not be scrolled into view when trying to click a button

sql - 使用 XQuery 在 XML 中选择除一个以外的所有节点

java - 检查 WebElement 对象中是否存在元素

php - Regex/DOMDocument - 匹配和替换不在链接中的文本

file - 如何使用 Selenium 获取上次下载的文件

python - Selenium 遍历下拉选择中的选项

java - 线程中的异常 "main"java.lang.NoSuchMethodError : com. google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;)

XPath:排除子元素

xpath - 使用xpath帮助从HTML表中提取文本