Я видел похожие вопросы, задаваемые, и ответы были не совсем те, что я после. Поскольку этот вопрос немного отличается, я спрашиваю снова - надеюсь, вы согласитесь, что это не дубликат.
Что я хочу сделать: создать изображение, показывающее содержимое моего собственного веб-сайта в том виде, в котором его видит пользователь (фактически каждый конкретный пользователь).
Почему я хочу это сделать: у меня есть некоторый код, который идентифицирует места на странице, где мышь пользователя зависает в течение значительного промежутка времени (ppl, как правило, перемещает мышь в области интереса). Я также записываю места щелчков. Они записываются как X / Y-координаты. относительно верхнего левого края страницы
Примечание: это делается только для пользователей, которые проводят юзабилити-тестирование.
В идеале я бы хотел иметь возможность сделать снимок экрана, а затем использовать что-нибудь на стороне сервера для наложения данных мыши на изображение (горячие точки, путь мыши и т. Д.)
У меня проблема в том, что содержимое страницы является очень динамическим (не столько во время отображения, сколько во время генерации на стороне сервера) - в зависимости от типа пользователя, назначенных ролей и т. Д. ... целых блоков может отсутствовать - и остальная часть макета соответственно корректируется - следовательно, для страницы не существует единственного «правильного» снимка экрана.
Вариант 1 (который кажется немного неприятным): будет ходить по DOM, сериализовать его и отправлять обратно на сервер. Затем я бы открыл соответствующий браузер и десериализовал DOM. Это должно работать, но звучит сложно автоматизировать. Я подозреваю, что также будут проблемы с относительными URL-адресами и т. Д.
Вариант 2: Как только страница закончит загрузку, сделайте снимок клиентской области (в идеале я хотел бы захватить всю длину страницы, но подозреваю, что это будет еще сложнее). Большинство страниц не требуют прокрутки, поэтому это не должно быть крупной проблемой - что-то, что можно улучшить для версии 2. Затем я загружу это изображение на сервер через AJAX.
Примечание: я не хочу видеть ничего, кроме содержимого моей собственной страницы (хром, адресная строка, что угодно)
Я бы предпочел иметь возможность делать это без установки чего-либо на ПК конечного пользователя (отсюда и JavaScript). Если единственной возможностью является приложение на стороне клиента, мы можем это сделать, но это будет означать больше хлопот при привлечении случайных пользователей к тесту юзабилити (в настоящее время мы просто отправляем по электронной почте друзьям / семье / морским свинкам другой URL-адрес)