Как получить текущий DOM с Selenium Java 2.8?

Я использую последнюю версию Selenium и chromedriver для тестирования приложения ZK.

во время теста я хотел бы сбросить DOM (или его часть), чтобы помочь мне найти необходимые элементы (и, вероятно, помочь людям, которые должны поддерживать тест).

метод WebDriver.getPageSource() выглядел многообещающе, но он возвращает только HTML, как он был отправлен сервером, а не Результат после запуска всего кода JavaScript.

код JavaScript запущен; я могу найти элементы по ID, который я не вижу в выводе getPageSource(). Поэтому я попытался WebElement.getText() но это только текст элементов, а не самих элементов и их атрибутов.

возможно ли вообще получить DOM или мне нужно сделать операцию замочной скважины здесь?

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.Дом с функцией, которую я действительно не знаю...Я подозреваю, что это связано с необходимостью webdriver для нескольких браузеров и т. д.