我正在使用Selenium RC和IE 6,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");
}
答案 0 :(得分:4)
我自己实现了这个,我只需要做selenium.useXpathLibrary(“javascript-xpath”)。在我的测试中,javascript xpath在IE 8上快了大约7倍。还没有真正测试过其他任何东西,但我们只将它用于IE。
答案 1 :(得分:0)
我从未这样做,但认为你可能需要做类似
的事情//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中要快得多。您可以看到如何使用不同的定位器策略here。我看到测试的速度至少是原始XPath的两倍。