xpath 查询以找到最近的元素

xpath queries to find closest element

我正在使用 java 和 selenium webdriver 2.44 进行项目,我们需要最接近的文本元素。例如,我在页面上有电子邮件文本,我需要最接近的元素是文本框。我在 facebook.com 上有 运行 下面给出的 xpath 查询。但是,它会找到电子邮件和文本输入类型的数量。我们不需要 jQuery 到 运行,因为我们使用的是 selenium webdriver。

.//*[contains(text(),'Email')]/following::input[@type='email' or @type='text']

任何人都可以提供 xpath 查询以查找页面上最近的元素。或者我可以学习如何查询的教程站点。

不是一个完美的解决方案,但在 facebook 场景中你可以找到第一个元素:

(.//*[contains(text(),'Email')]/following::input[@type='email' or @type='text'])[1]

如果您为查询获取多个元素,请添加另一件事:

List<WebElement> txtList = new ArrayList<WebElement>();
txtList = driver.findElements(By.xpath(".//*[contains(text(),'Email')]/following::input[@type='email' or @type='text']"));

并使用txtList.get(0).sendKeys("abcd");