7

IE 6 で Selenium RC を使用していますが、XPath ロケーターが非常に遅いです。だから私はjavascript-xpathが実際に物事をスピードアップするかどうかを確認しようとしています.

しかし、ネイティブ x-path ライブラリの使用方法に関する十分な/明確なドキュメントを見つけることができませんでした。

私は次のことをしています:

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 ロケータの速度が向上しますが、向上には一貫性がありません。一部の実行では、ロケーターにかかる時間が半分になります。時にはランダムに高くなります。

ここに設定手​​順がありませんか? これで成功した人が自分の見解とアプローチを共有できれば素晴らしいと思います.

ありがとう、ニルマル

解決:

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

2 に答える 2

4

私はこれを自分で実装し、selenium.useXpathLibrary("javascript-xpath") を実行するだけで済みました。私のテストでは、javascript xpath は IE 8 で約 7 倍高速でした。他のテストは行っていませんが、IE でのみ使用しています。

于 2010-03-29T20:30:19.093 に答える
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");

ライブラリをページに追加してからロードする必要があります。

ただし、Selenium でははるかに高速であるため、XPath セレクターの代わりに CSS セレクターを使用することをお勧めします。ここで、さまざまなロケーター戦略の使用方法を確認できます。テストが元の XPath の少なくとも 2 倍速くなるのを見てきました。

于 2010-03-29T19:43:57.407 に答える