Domanda

Ovviamente, la risposta alla domanda dipende da una serie di fattori ambientali.

Generale , mi chiedo che cosa le esperienze delle persone sono con HtmlUnitDriver come uno strumento affidabile che può essere "di fiducia" per navigare un sito web sostanzialmente allo stesso modo altri browser fanno.

Naturalmente, mi rendo conto "il modo in cui altri browser fanno" è piuttosto nebulosa; naturalmente tutti i browser avrà le sue stranezze. Ma io sono su un progetto in cui abbiamo centinaia di scenari di test di accettazione (scritto in JBehave ) e l'utilizzo di FirefoxDriver e InternetExplorerDriver , correndo tutti richiede oltre due ore, che è sorta di grezzi dal punto di vista integrazione continua. Quindi mi chiedo se è almeno fattibile che potremmo cambiare le nostre prove di accettazione verso l'uso HtmlUnitDriver e si aspettano molto più veloce volte con lo più lo stesso comportamento (e forse potremmo si aspettano una manciata di test a fallire utilizzando HtmlUnitDriver ed in particolare eseguire le prove con un driver basato su browser).

La nostra interfaccia utente utilizza GWT , che possono o cose che non complicare (non so) .

In sostanza, nell'esperienza degli altri, fa HtmlUnitDriver operano circa così come un altro browser, o è davvero appropriato solo per molto semplici siti web HTML con il minimo JavaScript e non deve essere utilizzato per un'applicazione enterprise web?

È stato utile?

Soluzione

Dalle mie esperienze con l'utilizzo di HtmlUnitDriver direi che se non si utilizza come browser di riferimento quando si scrivono i test poi convertirli da usare diventa un po 'un incubo. Ciò è particolarmente vero quando si tratta di siti pesanti javascript.

La ragione principale di ciò è l'ovvio uso sottostante HtmlUnit che, per default, utilizza il motore JavaScript rinoceronte. In passato ho sempre avuto per specificare che HtmlUnitDriver HtmlUnit iniziare a utilizzare il motore JavaScript di Firefox. Questo, per la maggior parte, ha risolto i problemi di javascript che stavo trovando durante l'esecuzione di test utilizzando HtmlUnitDriver.

Uno dei maggiori problemi che ho dovuto affrontare quando si trattava di utilizzare lo stesso codice di prova per ogni browser è stata se, sul sito in esame, gli sviluppatori di UI avevano assegnato eventi JavaScript quali onClick() di elementi HTML, come una <span>.

La ragione di questo è che se si sceglie di usare il metodo di .click() WebDriver su un WebElement che rappresenta il <span>, poi HtmlUnit sarebbe non fare nulla (si aspetta un onClick() di essere chiamato su elementi come ad esempio un <input>). Per ovviare a questo ho dovuto chiamare manualmente un evento click() in javascript. È possibile eseguire questa operazione utilizzando JavascriptExecutor del WebDriver o utilizzando un WebDriverBackedSelenium e .fireEvent() method di selenio.

Così, se il sito utilizza tali eventi allora direi di passare a utilizzare HtmlUnitDriver potrebbe essere un grande compito.

Nonostante questo, ho effettivamente utilizzare HtmlUnitDriver per tutti i miei test. Tuttavia, ho passato le pene di scoprire tutto quanto sopra un po 'indietro, in modo da ora utilizzare HtmlUnitDriver come browser di riferimento durante la scrittura di test.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top