2013-06-12 13 views
5

Ho un caso in cui invio una richiesta a un server e registra la risposta. Quindi ordino la richiesta e la invii al server ancora una volta e confronta la risposta con la precedente risposta registrata.Confronta le risposte HTML utilizzando il nodo js

Sto usando node.js e voglio sapere se esiste una migliore routine per confrontare la risposta HTML in node.js che può direttamente indicarmi le differenze in entrambe le risposte HTML.

risposta

3

Dai uno sguardo allo jsdiff, puoi restituire le differenze tra due parti di testo, o HTML nel tuo caso, a diversi livelli (caratteri, parole, linee).

1

È possibile utilizzare una combinazione di jsdom e 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));