Как использовать Selenium с "chart.js"
Меня попросили использовать Selenium для написания тестов для веб-сайта. На некоторых страницах есть графики, сгенерированные библиотекой "chart.js". Тесты требуют от меня:
- Прочитайте размер некоторых значений данных на графике
- Нажмите на определенные бары на графике.
- Наведите указатель мыши на определенные столбцы и проверьте подсказки
Беда в том, что диаграмма реализована в виде единого HTML canvas
элемент, поэтому нет DOM для деталей диаграммы, которыми селен может манипулировать.
1 ответ
Вы не сможете получить доступ к графику напрямую с помощью Selenium, потому что, как вы заметили, DOM отсутствует. Может быть способ получить доступ к данным диаграммы, используя JavascriptExecutor для запуска команд JS. Я не знаком с chart.js, но я написал автоматизацию против элементов CANVAS. Я связался с dev и поговорил с ними о том, к чему мне нужен доступ, и они дали мне указатели на методы и т. Д., Которые я мог бы вызвать, чтобы получить то, что мне нужно. Я использую объектную модель страницы, поэтому в итоге я написал несколько функций Java, обернутых вокруг кода JS, который обращался к CANVAS.