#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, что значительно упрощает процесс