2009-12-12 2 views
5

Я использую Selenium для проверки моего приложения. Хорошим тестом было бы то, что после каждой манипуляции с DOM я бы подтвердил DOM. Есть ли хороший способ сделать это?Подтвердить манипулирование DOM при использовании Selenium

Очевидные путями являются:

  • использования некоторой встроенной функции Селена. Есть ли это?
  • получить HTML-код DOM после манипуляции и использовать локальный валидатор. Однако я не вижу, как получить HTML для текущей DOM из Selenium.
  • Я мог бы каким-то образом пройти через javascript, добавив JS-файл во время тестирования или через Selenium. Но я не уверен, как это сделать. Мысли?

ответ

4

Для этого не используется Selenium. Тем не менее, есть проект с открытым исходным кодом, который построен на WebDriver, WebDriver становится Selenium 2, что позволяет выполнять макетирование.

Проект находится в http://code.google.com/p/fighting-layout-bugs/ и был впервые показан на GTAC 2009 в Цюрихе. В коде используются W3C и jQuery для проверки действительности DOM. Посмотрите видео о разговоре и коде, который есть.

EDIT:

Благодаря sampablokuper W3C, валидация на code.google.com/p/w3c-markup-validation-filter/

+0

Это очень классный проект, но тестирование макета отличается от тестирования HTML на достоверность. – sampablokuper

+0

рама работа делает w3c validaion. Посмотрите видео на сайте, чтобы увидеть exAmple. Он создает коробку на странице, которая либо красная, либо зеленая, в зависимости от того, как она проверяется, поэтому вы просто проверяете ее цвет. – AutomatedTester

+0

Правда, vid упоминает об этом, но код для этого на самом деле находится в другом проекте Майкла Тамма: http://code.google.com/p/w3c-markup-validation-filter /. Мне еще не удалось запустить этот код в моей системе (я не часто касаюсь Java, поэтому я немного замедлился с ним), но я с нетерпением жду этого. Cheers :) – sampablokuper

1

Я размышлял о том же фронте. Вот мой прогресс.

Атрибут JavaScript document.documentElement.outerHTML может быть доступен в некоторых браузерах, например. Safari и Chrome, но не в Firefox. Это покажет вам результат манипуляций с DOM, но не даст вам достаточно полного исходного кода для этой страницы. Если вы добавите некоторый JavaScript, который сохранит значение document.documentElement.outerHTML после выполнения вашей манипуляции с DOM, вы сможете получить Selenium для ввода этого значения в текстовое поле «прямого ввода» W3C Validator и отправить его , Вам нужно будет добавить и добавить значение соответствующим образом, чтобы сделать его допустимым (X) HTML-документом. Мне еще не удалось получить все эти шаги от Selenium.

Предполагаемый "view-source:" на URL (как сделано here) работает в некоторых браузерах, например. Firefox и Chrome, но не в Safari. Он не покажет вам результат манипуляций с DOM. Кажется, я не могу заставить Selenium IDE открыть адрес, начинающийся с «view-source:»; он всегда добавляет косую черту, и я не уверен, как этого избежать.

Мне было бы интересно узнать, какие другие подходы люди пробовали, и достигли ли они успеха!

0

Попробуйте

String html = selenium.getEval("window.document.body.innerHTML"); 

Это даст вам весь текущий DOM HTML, который манипулирует Javascript.

Смежные вопросы