gpt4 book ai didi

java - 如何检查 Jsoup 中元素的可见性?

转载 作者:搜寻专家 更新时间:2023-10-31 20:34:09 25 4
gpt4 key购买 nike

我在 Jsoup 元素中找不到像 isDisplayed() 这样的直接方法。我可以使用以下代码通过 type = "hidden" 检查输入。

"HIDDEN".equals(elm.attr("type").toUpperCase())

但我还需要捕获隐藏的 CSS。还有继承的隐藏元素。

最佳答案

Pshemo 在他的评论中已经说过:JSOUP 不是 JavaScript 解释器。并且 JSOUP 不会将外部 CSS 信息组合到 html 中。 JSOUP 只是解释 html,它非常擅长这一点。仅此而已,但也仅此而已。您还可以使用 JSOUP 访问互联网和加载 html 页面,但这确实是它的限制。

关于你的问题:如果真的需要知道一个元素是可见还是隐藏,你应该仔细考虑。如果它在您的上下文中,您可能需要一个行为类似于浏览器的测试框架。对于 Java,有非常好的绑定(bind) selenium webdriver .这会驱动真正的浏览器加载和测试页面。您还可以使用 selenium 抓取内容。我有很好的经验,使用 selenium 访问 Web 内容,然后切换到 JSOUP 进行实际抓取。在您的情况下,您可以直接使用强大的 webdriver API 来查明某个元素是否被隐藏。

Selenium webdriver 能够与 Firefox、Chrome 和许多其他浏览器一起工作。如果你需要一个轻量级的替代品,你可以使用 headless 浏览器。为此存在 PhantomJs ,这是由 selenium 提供的 exellenttly 支持。或者 HTMLUnit ,它甚至更轻,并使用 Java Rhino 解释器来处理 JavaScript。

你看,有很多选项可供选择来实现你想要的。只是不是 JSOUP,尽管它是一个很棒的库。

关于java - 如何检查 Jsoup 中元素的可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25526319/

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