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

如何使用Selenium Java 2.8获取当前DOM?,dom,selenium,junit,zk,Dom,Selenium,Junit,Zk,我正在使用最新版本的Selenium和chromedriver来测试ZK应用程序 在测试过程中,我希望转储DOM(或其中的一部分),以帮助我找到所需的元素(并可能帮助必须维护测试的人员) 方法WebDriver.getPageSource()看起来很有希望,但它只返回服务器发送的HTML,而不是运行所有JavaScript代码后的结果 运行JavaScript代码;我可以通过ID找到在getPageSource()的输出中看不到的元素。所以我尝试了WebElement.getText(),但那只

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

在测试过程中,我希望转储DOM(或其中的一部分),以帮助我找到所需的元素(并可能帮助必须维护测试的人员)

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

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


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

我确实有同样的问题,但我发现唯一的方法是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);
        }
//
///获取特定元素的parentElement/节点
/// 
/// 
/// 
/// 
公共静态IWebElement GetElementParent(IWebDriver驱动程序,IWebElement元素)
{
return(IWebElement)((IJavaScriptExecutor)driver.ExecuteScript(“返回参数[0].parentNode”,元素);
}

为什么By不支持By.DOM和一个我不太了解的函数…我怀疑这是因为需要一个用于多个浏览器的webdriver等

好的,因为页面包含jQuery,我可以通过运行
$(参数[0]).html()
,得到我想要的,我猜:-/