7

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

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

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

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

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

4

1 回答 1

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 的功能我真的不知道...我怀疑这是由于需要用于多个浏览器的 webdriver 等

于 2012-02-15T13:12:55.137 回答