выполнить javascript в роботизированной системе с selenium2library - PullRequest
1 голос
/ 08 марта 2012

Я тестирую веб-applaction на основе extjs с robotframework и selenium2library, но не могу найти некоторые элементы, которые содержатся в компоненте таблицы.У selenium2library есть ключевое слово Execute javascript, поэтому я хочу знать, как я могу выполнить javascript. Например, как я могу выполнить js-код:

var a=document.getElementById('ext-comp-1155').getElementsByTagName("button");
a[0].click();

Есть ли у кого-нибудь успешные автоматизированные тесты веб-страниц на основе extjs?опыт?Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 08 марта 2012

Вы должны быть в состоянии выполнить javascript следующим образом

  Execute Javascript var a=document.getElementById('ext-comp-1155').getElementsByTagName("button"); a[0].click(); 

т.е. Несмотря на то, что в JavaScript есть несколько выражений, вы можете указать их в одном аргументе, если точка с запятой есть.

Это можно сделать немного более читабельным, например:

 ${button clicker}=  document.getElementById('ext-comp-1155').getElementsByTagName("button")[0].click() 
 Execute Javascript  ${button clicker} 
0 голосов
/ 12 сентября 2012

Если вы не ограничены Selenium, вы можете посмотреть на RIATest .

Версия 5.0 полностью поддерживает тестирование ExtJS.Виджеты пользовательского интерфейса ExtJS являются гражданами первого класса в RIATest.Это означает, что в отличие от других инструментов тестирования HTML, вам не нужно писать тесты, которые манипулируют элементами HTML DOM.Тесты в RIATest работают в терминах виджетов ExtJS UI.

Примеры скриптов RIATest, которые работают с виджетами ExtJS:

Следующие нажатия на кнопку ExtJS с меткой «Следующая страница»:

ExtButton("Next Page")=>click();

И следующее делает перетаскивание строки из одного дерева ExtJS в другое:

ExtRow("Controller.js")=>dragAndDropTo(ExtTreePanel("#tree2")->ExtRow("Custom Ext JS"));

И это сворачивает заголовок блока ExtJS:

ExtBox("Feeds")->ExtHeader("FeedsВ")->ExtCollapser()=>click();

(Весь приведенный выше пример кода взят из реальных тестовых сценариев, которые запускаются в образцах приложений ExtJS).

RIATest также знает, когда автоматически ожидать завершения ExtJS AJAX, поэтому, если ваш пользовательский интерфейс выполняет динамическое содержимое, загружаятесты автоматически ожидают получения данных с сервера.

(Отказ от ответственности: я являюсь членом команды RIATest).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...