Я использую Селен, 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");
}
Я реализовал это сам, и мне нужно было только сделать selenium.useXpathLibrary ("javascript-xpath"). В моих тестах javascript xpath был примерно в 7 раз быстрее в IE 8. На самом деле не тестировали ничего другого, но мы используем его только для 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.