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

标签 java jsoup

我在 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/

相关文章:

java - 注释参数 - String[] 类型参数设置为字符串文字

java - 在安卓中创建视频

java - Jsoup 和附件列表

java - 如何使用 Gradle 创建独立的自执行 jar 文件?

java - 你如何每 5 分钟执行一次 cron 作业?

java - Java中如何将数组解析为对象

android - 使用 jsoup 从站点 url 中提取 youtube 视频 url

java - 将 XPath 转换为 CSS 选择器

jsoup - 重用 Jsoup 连接

java - 按类获取连续包含两个空格的 div (JSoup)