2010-03-29 11 views
7

Sto usando Selenium RC con IE 6 e localizzatori XPath sono terribilmente lenti. Quindi sto cercando di vedere se javascript-xpath in realtà accelera le cose.Come utilizzare xpath in Selenium RC con JavaScript?

Ma non è stato possibile trovare una documentazione sufficiente/chiara su come utilizzare librerie di percorsi nativi x- .

sto facendo quanto segue:

protected void startSelenium (String testServer, String appName, String testInBrowser){ 
    selenium = new DefaultSelenium("localhost", 4444, "*" +testInBrowser, testServer+ "/"+ appName + "/"); 
    echo("selenium instance created:"+selenium.getClass()); 
    selenium.start(); 
    echo("selenium instance started..." + testServer + "/" + appName +"/"); 

    selenium.runScript("lib/javascript-xpath-latest-cmp.js"); 
    selenium.useXpathLibrary("javascript-xpath"); 
    selenium.allowNativeXpath("true"); 
} 

Questo si traduce in un miglioramento della velocità di XPath localizzatore ma i miglioramenti non sono coerenti. In alcune sessioni il tempo impiegato per il localizzatore è dimezzato; mentre a volte è alta in modo casuale.

Mi manca qualche passaggio di configurazione qui? Sarebbe bello se qualcuno che ha avuto successo con questo potrebbe condividere le loro opinioni e approccio.

Grazie, Nirmal

Soluzione:

protected void startSelenium (String testServer, String appName, String testInBrowser){ 
    selenium = new DefaultSelenium("localhost", 4444, "*" +testInBrowser, testServer+ "/"+ appName + "/"); 
    echo("selenium instance created:"+selenium.getClass()); 
    selenium.start(); 
    echo("selenium instance started..." + testServer + "/" + appName +"/"); 

    selenium.useXpathLibrary("javascript-xpath"); 
} 

risposta

4

L'ho implementato personalmente e ho dovuto solo selezionare selenium.useXpathLibrary ("javascript-xpath"). Nei miei test, javascript xpath era circa 7 volte più veloce su IE 8. Non ho mai provato su qualcos'altro, ma lo usiamo solo per IE.

+0

Ciao Dan, Se non si aggiunge esplicitamente lo script; da dove viene il motore? Il selenio include già questo js ?? non ero in grado di trovare alcuna prova del genere. –

+0

Se guardi il codice sorgente del selenio, vedrai javascript-xpath-0.1.11.js è incluso nel comune \ src \ js \ core \ xpath, quindi presumo che stia tirando da quello. QUALCOSA sta portando i miei test a 7 volte più velocemente. =) –

0

Non ho mai fatto questo, ma penso che potrebbe essere necessario fare qualcosa di simile

//Add the library to the page since runScript just does an eval on the JS 
selenium.runScript("document.body.append(document.createElement('script')).src = 'path/to/lib');"); 
selenium.useXpathLibrary("javascript-xpath"); 
selenium.allowNativeXpath("true"); 

Sarà necessario aggiungere la libreria alla pagina e poi caricarla.

Tuttavia, si consiglia di utilizzare selettori CSS anziché selettori XPath poiché sono molto più veloci in selenio. Puoi vedere come utilizzare diverse strategie di localizzazione here. Ho visto test diventare almeno due volte più veloci degli XPath originali.

+0

Attualmente sto usando i selettori CSS ... ma sono un po 'più complicati e ci sono più problemi quando li si utilizza con IE. Sto esplorando i miglioramenti di velocità offerti da javascript-xpath per vederli confrontati con i selettori CSS. –

Problemi correlati