На 2 разных сайтах есть 2 страницы которые должны быть абсолютно идентичные. Задача состоит в том что бы проверить действительно ли они одинаковые. Думала считать полностью весь код с одной страницы (включая теги) и сравнивать построчно.
Подскажите плиз как это можно реализовать на Java+JUnit.
В NUnit есть методы AreEqual для коллекция и для строчных данных. Если странички должны быть в точности равны (вплоть до форматирования кода), сравнение страничек как объекты или как единая строка вполне подойдёт.
Если же одинаков только смысл, а, например, регистр символов разный - такое сравнение не подойдёт.
А сравнивать построчно смысла мало - может же быть расхождение не в строках, а в их расположении или в промежутках между строками. Если же хочется пойти путём сравнения строк - в мире полно отличных решений: fc, diff, winmerge (не знаю, есть ли у winmerge API). Они проверены, без преувеличения, миллионами пользователей, так что отчёт diff или fc - это как неоспоримое доказательство идентичности или расхождений. :)
Это частный случай - что-то поменяно в строках. В общем случае может быть 1) разное кол-во строк, 2) разный порядок строк, 3) разные данные в строках 4) разные табуляции и т.п. (если это важно) в строках 5) разные вертикальные табуляции (если это важно).
Сравнение строк поможет с первыми тремя.
Если надо сравнить элементы, я бы предложил ещё и другой путь: собрать элементы скриптом, собрать атрибуты каждого элемента скриптом и поместить в массив (есть интересные примеры в инете, как сделать дикшинари из массива). Это можно даже сделать через селениум (скрипт сбора элементов и скрипт сбора атрибутов работают на стороне браузера, а драйвер чисто как переносчик данных до вашего кода.
Я делал подобное (для другой цели, но шаги были те же).
Да подход хороший, если HTML будет валидным, а иначе библиотека сразу тебе скажет, что нужно предоставить ему правильный xml. А так, библиотека отличная! Рекомендую.