Selenium и SVG

#selenium #svg

#selenium #svg

Вопрос:

У меня есть веб-приложение, которое использует в нем индикатор SVG. этот индикатор отображает состояние работоспособности моей сетки (нескольких компьютеров).

Индикатор имеет 3 цвета: зеленый, желтый и красный.

Я хочу иметь возможность написать тест, который гарантирует, что этот индикатор правильно представляет данные. То есть мой тест рассчитает ожидаемое значение работоспособности сетки и убедится, что индикатор указывает на соответствующую область.

Возможно ли это с использованием Selenium 2.0?

Ответ №1:

Selenium позволит вам, используя JavaScript, получить доступ к свойствам любого элемента в DOM, поэтому что-то вроде

 var gaugeFill = document.getElementById('mygauge').getAttribute('fill');
  

это вернет вам цвет заливки, но он может выглядеть как: «rgb (255,0,0)» для красного. Вам нужно будет проверить это и соответствующим образом настроить логику сравнения.

Кроме того, вы не сказали, как вы визуализируете SVG. Существует так много способов… То, что я описал, работает для современных браузеров, где элементы SCV являются прямой частью DOM, но это не относится к старым браузерам или если вы используете что-то Raphael.

Комментарии:

1. я тестирую Chrome и Firefox latest…so версии браузера не должны быть проблемой.

2. кроме того, я хотел получить ориентацию стрелки … а не цвет. (стрелка указывает на определенный диапазон с определенным цветом). в итоге я сделал что-то вроде этого: String arrowDegrees = driver.findElementById(«myGuage»).getAttribute(«transform»);

Ответ №2:

Думаю, я понял это, но еще не тестировал… элементы svg отображаются в dome так же просто, как и, поэтому я могу просто ходить по нему, пока не найду нужный мне атрибут .. в моем случае witch — это transform. этот атрибут генерируется с помощью GWT. вы также можете назначить идентификаторы, используя GWT witch, что значительно упрощает процесс