【问题标题】:How to parse entire DOM elements and follow changes in DOM using selenium webdriver in java如何在java中使用selenium webdriver解析整个DOM元素并跟踪DOM中的变化
【发布时间】:2018-12-10 17:17:06
【问题描述】:

我有一个 URL,如果我多次浏览该 URL,我想测试其中的更改,这意味着: 如果这是第一次在此 url 上运行测试,则仅保存页面的布局 (DOM)。 我希望能够产生包含以下内容的输出: 此 url 上所有更改的列表,更改意味着 - 添加到页面的新 HTML 元素, 旧元素已移除,元素位置已更改。

到目前为止,我开始用 selenium 做的是:

public String extractingUrlDom(){
        this.driver.get("https://www.google.com/");
        this.str = driver.getPageSource().toString();
        return str;
    }

我的问题是,在浏览到同一个 URL 后,如何跟踪对 DOM 所做的所有更改(如果进行了任何更改)。

【问题讨论】:

    标签: java html selenium


    【解决方案1】:

    您需要将 HTML 写入特定位置的文本文件。当测试运行时,它会检查该位置是否有预期的文件名。如果它不存在,这是第一次运行测试,它会将 HTML 保存到文件中。如果文件确实存在,您将打开现有文件并对两个 HTML 字符串进行比较。然后,您可以将该差异写入单独的文件。

    您还需要考虑更多逻辑,但这应该足以让您入门。那里有很多不同的引擎/库,您应该能够找到现有的并使用它。

    【讨论】:

    • 好的,假设我将文件解压缩到本地目录,然后我将另一个 HTML 字符串解压缩到同一目录,现在我正在检查它们之间的文件散列,看看是否有任何差异文件哈希不同我会在它们之间执行差异。另一个问题是执行 'driver.getPageSource().toString();' 后如何美化
    • 你是对的....这是另一个问题。 :) 话虽如此,不要问它......谷歌它,因为它之前被问过。如果你做一些简单的谷歌搜索,你肯定会找到一个可以使用的 HTML 美化库。
    • 解析所有 DOM 并将其表示为树然后检查更改会更好吗?
    • 这是一个你应该问自己的问题。我不知道这个项目的目标或意图是什么,你打算如何处理结果等等。
    • 如果这个或任何其他答案有用,请点赞。找到问题的答案后,请将其标记为已接受,以免问题没有得到解答。
    猜你喜欢
    • 2021-12-26
    • 1970-01-01
    • 2020-01-30
    • 2011-11-22
    • 2013-09-09
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    相关资源
    最近更新 更多