2010-03-29 15 views
7

Ich verwende Selenium RC mit IE 6 und XPath Locators sind schrecklich langsam. Also versuche ich zu sehen, ob Javascript-Xpath tatsächlich die Dinge beschleunigt.Wie benutzt man Xpath in Selenium RC mit JavaScript?

Aber konnte nicht genug/klare Dokumentation finden, wie native x- Pfadbibliotheken zu verwenden.

Ich tue das folgende:

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"); 
} 

Dies führt zu einer Verbesserung der Geschwindigkeit von XPath-Locator, aber die Verbesserungen sind nicht konsistent. Bei einigen Durchläufen ist die Zeit für einen Locator halbiert; manchmal ist es zufällig hoch.

Fehle mir hier irgendein Konfigurationsschritt? Wäre toll, wenn jemand , der Erfolg damit hatte, ihre Ansichten und Vorgehensweise teilen könnte.

Danke, Nirmal

Lösung:

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"); 
} 

Antwort

4

Ich habe dies selbst implementiert und ich musste nur selen.useXpathLibrary ("javascript-xpath") tun. In meinen Tests war der Javascript-XPath auf IE 8 ungefähr 7x schneller. Habe nicht wirklich etwas anderes getestet, aber wir verwenden es nur für IE.

+0

Hallo Dan, Wenn wir das Skript nicht explizit hinzufügen; Woher kommt der Motor? Enthält Selen bereits dieses js ?? Ich konnte solche Beweise nicht finden. –

+0

Wenn Sie sich den Quellcode von Selen ansehen, werden Sie sehen, dass javascript-xpath-0.1.11.js in common \ src \ js \ core \ xpath enthalten ist, also gehe ich davon aus, dass es davon abhebt. ETWAS führt dazu, dass meine Tests 7x schneller werden. =) –

0

ich dies noch nie getan haben, glauben aber, dass Sie etwas tun, wie

//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"); 

Sie müssen hinzufügen müssen die Bibliothek auf die Seite und laden Sie sie dann.

Allerdings würde ich CSS Selektoren anstelle von XPath Selektoren empfehlen, da sie in Selen viel schneller sind. Sie können sehen, wie Sie verschiedene Locator-Strategien verwenden können here. Ich habe gesehen, dass Tests mindestens doppelt so schnell sind wie der ursprüngliche XPath.

+0

Ich verwende derzeit CSS-Selektoren ... aber sie sind ein bisschen komplizierter und es gibt mehr Probleme, wenn Sie sie mit IE verwenden. Ich erkunde die Geschwindigkeit Verbesserungen von JavaScript-XPath, um es zu sehen, die sie mit CSS-Selektoren vergleichen. –

Verwandte Themen