2013-06-12 3 views
5

У меня есть случай, когда я отправляю запрос на сервер и записываю ответ. Затем я обрабатываю запрос и отправляю его на сервер еще раз и сравниваю ответ с ранее записанным ответом.Сравните html-ответы с помощью узла js

Я использую node.js, и я хочу знать, есть ли какая-либо лучшая процедура для сравнения ответа HTML в node.js, которая может прямо указывать на различия в обоих ответах HTML.

ответ

3

Посмотрите на jsdiff, он может вернуть вам различия между двумя фрагментами текста или HTML в вашем случае на нескольких разных уровнях (символы, слова, строки).

1

Вы можете использовать комбинацию jsdom и dom-compare:

var compare = require('dom-compare').compare, 
    jsdom = require('jsdom'); 

// Those are the HTML fragments that we want to compare: 
var expectedHTML = '<div><i>m</i><b>q</b></div>'; 
var actualHTML = '<div><i>h</div>'; 

var expectedDOM = jsdom.jsdom(expectedHTML); 
var actualDOM = jsdom.jsdom(actualHTML); 
var result = compare(expectedDOM, actualDOM); 

console.log('diff array:', result.getDifferences()); 

// we can use a reporter to pretty-print the result: 
var reporter = require('dom-compare').GroupingReporter; 
console.log(reporter.report(result));