如何在JavaScript中使用Selenium RC中的xpath?

我使用IE 6的Selenium RC和XPath定位器速度非常慢。 所以我试图看看javascript-xpath是否实际上加速了事情。

但是找不到足够/清晰的关于如何使用本机x路径库的文档。

我正在做以下事情:

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

这导致了XPath定位器的速度提升,但改进并不一致。 在某些运行中,定位器所花费的时间减半; 而有时它的随机性很高。

我在这里错过了任何配置步骤吗? 如果某个成功的人能够分享他们的观点和方法,那将会很棒。

谢谢,Nirmal

解:

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

我自己实现了这一点,我只需要执行selenium.useXpathLibrary(“javascript-xpath”)。 在我的测试中,IE浏览器的JavaScript xpath速度大约快了7倍。还没有真正测试过其他任何东西,但我们只在IE中使用它。


我从来没有这样做,但认为你可能需要做类似的事情

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

您需要将该库添加到该页面,然后加载它。

但是,我建议使用CSS选择器而不是XPath选择器,因为它们在Selenium中快得多。 你可以在这里看到如何使用不同的定位器策略。 我看到测试的速度至少比原来的XPath快两倍。

链接地址: http://www.djcxy.com/p/45241.html

上一篇: How to use xpath in Selenium RC with JavaScript?

下一篇: How to test Asp.net WebApplication in different internet speed?