【问题标题】:How do I get the current DOM with Selenium Java 2.8?如何使用 Selenium Java 2.8 获取当前的 DOM?
【发布时间】:2011-10-10 12:30:05
【问题描述】:

我正在使用最新版本的 Selenium 和 chromedriver 来测试 ZK 应用程序。

在测试期间,我想转储 DOM(或其中的一部分)以帮助我找到我需要的元素(并可能帮助必须维护测试的人)。

WebDriver.getPageSource() 方法看起来很有希望,但它只返回服务器发送的 HTML,而不是运行所有 JavaScript 代码后的结果。

JavaScript 代码运行;我可以通过 ID 找到在getPageSource() 的输出中看不到的元素。所以我尝试了WebElement.getText(),但这只是元素的文本,而不是元素本身或其属性。

是否有可能获得 DOM 还是我必须在这里进行锁孔手术?

【问题讨论】:

    标签: dom selenium junit zk


    【解决方案1】:

    我确实有同样的问题,但我发现的唯一方法是 ExecuteScript:

    /// <summary>
            /// Gets the parentElement/Node of a particular element
            /// </summary>
            /// <param name="driver"></param>
            /// <param name="element"></param>
            /// <returns></returns>
            public static IWebElement GetElementParent(IWebDriver driver,IWebElement element)
            {
                return (IWebElement) ((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].parentNode", element);
            }
    

    为什么 By 不支持 By.DOM 的功能我不太了解...我怀疑是因为需要多个浏览器的网络驱动程序等

    【讨论】:

    • 好的,因为页面包含 jQuery,我可以通过运行 $(arguments[0]).html() 得到我想要的,我猜 :-/
    猜你喜欢
    • 2018-03-01
    • 1970-01-01
    • 2018-07-19
    • 2015-02-17
    • 2017-10-12
    • 2021-08-24
    • 2020-01-25
    • 2016-08-02
    • 2011-01-08
    相关资源
    最近更新 更多