gpt4 book ai didi

selenium - 如何将 Jsoup 与 WebDriver 集成?

转载 作者:行者123 更新时间:2023-12-04 18:07:37 25 4
gpt4 key购买 nike

在我的 WebDriver 项目中,我计划添加 Jsoup 以获取“父”和“兄弟”以及其他一些功能。我需要通过 Jsoup 找到一个元素并使用 WebDriver 单击它的父元素。这意味着我需要将 Joup 元素对象转换为 WebElement 对象。如果可行,请告诉我如何做到这一点。
如果无法以这种方式集成 Jsoup 和 WebDriver,那么请讨论如何让 parent 和所有人都使用 WebDriver。
此外,是否可以列出特定 WebElement 下存在的所有可能元素?

最佳答案

我们正在做类似的方法,集成 JSoup 和 Selenium WebDriver,这很有趣。我可以理解您的问题,尤其是处理一些基于一些没有稳定 ID 或属性的 Javascript 框架的动态网站。
我们的解决方案如下所示,希望可以为您提供一些建议:

  • webDriver.getPageSource() 获取当前 HTML 源
  • 使用JSoup解析这个HTML源代码,并利用Jsoup选择器(比Selenium强大得多)定位目标元素
  • 获取此元素的父级或兄弟级
  • 编写迭代函数获取元素xPath,如//body/div[2]/form[1]/input[3]
  • webDriver.findElement(By.xpath(...)) 在 selenium 上下文中定位元素

  • 已编辑
    迭代函数的思想是:
  • 首先检查你的父节点的标签,如果是body,则迭代结束
  • 如果不是,则使用 getSiblings 在所有具有相同标签的节点中检查该节点的索引,例如第 3 个 div,则等于 div[3]
  • 迭代到您的父节点,并执行相同的过程

  • 一旦你得到子节点的xpath,和父节点,只需将父节点xpath替换为子节点xpath内的空字符串,最后你就可以得到相对的xpath。

    关于selenium - 如何将 Jsoup 与 WebDriver 集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22931412/

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