查找具有特定类别的祖先。硒。网络驱动程序。使用 XPath

Posted

技术标签:

【中文标题】查找具有特定类别的祖先。硒。网络驱动程序。使用 XPath【英文标题】:Find an ancestor with a particular class. Selenium. WebDriver. Using XPath 【发布时间】:2021-06-07 09:44:00 【问题描述】:

我正在尝试查找 XPath 查询来获取我的元素的祖先,即 divclass='row publication-detail teaser'

我目前正在做的事情如下:

element.findElements(By.xpath("//ancestor::div[@class='row publication-detail teaser']"));

问题是,它返回了div[@class='row publication-detail teaser'] 的所有兄弟姐妹。而且我只需要我的元素祖先。

我做错了什么?

【问题讨论】:

我想我找到了第一个问题:我应该从 ./ 相对路径开始,我认为当你从 // 开始时它开始到处寻找。那并没有完全解决我的问题。对于那些可能在该主题中被迭代的人 - 我发现了一个很酷的备忘单:devhints.io/xpath 【参考方案1】:

你几乎是正确的,但findElements 会给你元素列表而不是使用findElement

尝试像这样替换您的代码

element.findElement(By.xpath("your web element here from where you want to go to ancestor, then use ancestor like this //ancestor::div[@class='row publication-detail teaser']"));

【讨论】:

以上是关于查找具有特定类别的祖先。硒。网络驱动程序。使用 XPath的主要内容,如果未能解决你的问题,请参考以下文章

查找具有特定类的最近的祖先元素

硒 - 蟒蛇。如何捕获网络流量的响应[重复]

查找最佳类别匹配的 SQL 查询

查找具有给定祖先的提交

带有硒网络驱动程序的竹子

如果列表中的文本具有相似的路径,如何查找