Как использовать xpath в Селене RC с JavaScript?

Я использую Селен, 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");
}
7
задан Ripon Al Wasim 26 June 2015 в 10:28
поделиться

2 ответа

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

4
ответ дан 7 December 2019 в 14:30
поделиться

Я никогда не делал этого, но думаю, что вам может потребоваться что-то вроде

//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.

0
ответ дан 7 December 2019 в 14:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: