如何使用Selenium Java 2.8获取当前DOM?

Aar*_*lla 7 junit selenium dom zk

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

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

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

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

是否有可能获得DOM或我是否必须在此进行锁孔手术?

Chr*_*art 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);
        }
Run Code Online (Sandbox Code Playgroud)

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