Как мне получить текущий DOM с Selenium Java 2.8? - PullRequest
7 голосов
/ 10 октября 2011

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

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

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

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

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

1 Ответ

1 голос
/ 15 февраля 2012

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

...