gpt4 book ai didi

java - 如何使用 Selenium 和 Java 在网页上查找文本并获取其 XPath 或 CSS

转载 作者:太空宇宙 更新时间:2023-11-03 21:54:28 24 4
gpt4 key购买 nike

有一个页面列出了动态表上的元素。 table 上元素的顺序和数量随机变化。

我想根据文本“Itemx”找到其中一个元素“Itemx”,然后在代码的另一部分获取并使用它的 XPath 或 CSS。

我可以根据文本“Itemx”找到元素

driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*Itemx[\\s\\S]*$");

但是我怎样才能得到它的 XPath 或 CSS?

我好像在网上找不到任何东西。那里的所有内容都向您展示了如何使用 XPath 验证或查找文本。对我来说恰恰相反。我有文本,我想找到它的 XPath。

最佳答案

XPath 和 CSS 选择器都是任意的。在一般情况下,对此没有好的答案。

选择第一个 c<a><b></b><c></c><c></c></a>使用 CSS 选择器可能是 c:first-of-type , 或 a > c:nth-child(2) , 或 a c:first-of-type , 或 a > b + c ,或其他一些东西。与 XPath 类似,有许多表示它的方法。如果您更改标记,会发生什么情况?

这完全取决于上下文、所需的稳定性、误报或漏报是否更糟(您可以使其非常严格,这样如果标记发生变化,它可能会中断,或者您可以使其非常松散,以便如果标记发生变化,你很可能会选择错误的东西)和做这件事的人的心血来潮。 (我会选择以上哪一种方式?Eeny,meeny,miny,mo ...)

但是,如果您只关心文档的当前状态并且不需要 flex ,那么首先考虑您是否真的需要这样的选择器。您或许可以传递 DOM 元素。但是,如果您想唯一地标识一个元素,那么遍历 DOM 树将是一种相当直接的方法,逐层向下移动,观察该节点是哪个子节点。你最终会得到这样的结果:

:root > :nth-child(3) > :nth-child(1) > :nth-child(4)

丑陋,但它可能是你想要的。

关于java - 如何使用 Selenium 和 Java 在网页上查找文本并获取其 XPath 或 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14901927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com