Как я добавляю JQuery локаторы к Дистанционному управлению Селена

Я использовал XPath с Селеном вполне счастливо и даже использовал getEval с a, но JavaScript, но коллега сказал, не будет он быть большим смочь использовать селекторы JQuery в Селене.

Я погуглил его, но не могу найти статьи, которые, кажется, работают на меня. Мог любой предоставлять подробное руководство о том, как использовать синтаксис JQuery для извлечения элементов документа и их соответствующих значений из селена.

Я использую C# для записи моих тестов селена, поэтому если бы какие-либо примеры могли бы быть с точки зрения C#, это было бы большим.

Спасибо

7
задан raksja 12 July 2011 в 10:22
поделиться

2 ответа

Karl Swedberg написал отличную запись в блоге об этом, которую можно найти по адресу http://www.learningjquery.com/2009/04/better-stronger-safer-jquerify-bookmarklet

Мы адаптировали это и в основном в jar-файле Selenium Server мы изменили RemoteRunner. html, чтобы включить jquery JavaScript (полученный из http://code.jquery.com/jquery-latest.min.js):

        <script language="JavaScript" type="text/javascript" src="jquery.min.js"></script>
        <script language="JavaScript" type="text/javascript">
            function openDomViewer() {
                var autFrame = document.getElementById('selenium_myiframe');
                var autFrameDocument = new SeleniumFrame(autFrame).getDocument();
                this.rootDocument = autFrameDocument;
                var domViewer = window.open(getDocumentBase(document) + 'domviewer/domviewer.html');
                return false;
            }
        </script>

Затем, чтобы включить его для использования в Selenium, мы добавили стратегию локатора:

mySelenium.addLocationStrategy("jquery",
            "var loc = locator; " +
            "var attr = null; " +
            "var isattr = false; " +
            "var inx = locator.lastIndexOf('@'); " +

            "if (inx != -1){ " +
            "   loc = locator.substring(0, inx); " +
            "   attr = locator.substring(inx + 1); " +
            "   isattr = true; " +
            "} " +

            "var found = jQuery(inDocument).find(loc); " +
            "if (found.length >= 1) { " +
            "   if (isattr) { " +
            "       return found[0].getAttribute(attr); " +
            "   } else { " +
            "       return found[0]; " +
            "   } " +
            "} else { " +
            "   return null; " +
            "}"
        );

Обратите внимание, что вышеприведенное добавление стратегии локатора сделано на Java, но это просто строка, поэтому ее легко воспроизвести на C#. JQuery действительно делает все намного быстрее, особенно в Internet Explorer!

Чтобы изменить jar, вы можете использовать инструмент командной строки java для обновления загруженного selenium server jar. Создайте папку на одном уровне с jar под названием "core" и поместите туда измененные файлы RemoteRunner.html и jquery.min.js. Затем запустите что-то вроде:

jar -uf selenium-server-standalone-2.0b3-APT.jar core\RemoteRunner.html
jar -uf selenium-server-standalone-2.0b3-APT.jar core\jquery.min.js

Если jar отсутствует в вашем пути, вы можете использовать полный путь, например, на windows вы можете запустить его с помощью чего-то вроде:

"C:\Program Files\Java\jdk1.6.0_22\bin\jar.exe" <arguments>
9
ответ дан 7 December 2019 в 03:13
поделиться

Вам нужно будет определить новую стратегию расположения с помощью метода AddLocationStrategy и включить jQuery в файл user-extensions.js.

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

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