Skip to Content

Тестирование SharePoint. Автоматизиремся - Selenium VS SharePoint Menus

 Если вы уже пытались создавать автоматизированные Selenium тесты для тестирования SharePoint, то наверняка знаете, что до многих UI элементов SharePoint не так то просто добраться. Идея создания таких тестов не оставила равнодушным и меня. При этом, конечно же, я столкнулся с массой проблем. Действительно, обилие JavaScript в элементах управления делает, на первый взгляд, автоматизацию с помощью Selenium  невозможной. На самом деле это не так. Сегодня я расскажу об одном из способов работы с различными меню SharePoint (такими как Site Actions или Page Editor Toolbar).Способ, о котором я расскажу не идеален, поскольку он привязан к дизайну, но, к сожалению, на данный момент другого метода мне найти не удалось. 

Скорее всего при создании тестов многие из вас используют Selenium IDE для их записи. Если вы пытались записать Selenium тесты для SharePoint, в которых необходимо обращаться к каким либо элементам меню SharePoint, то, наверняка, столкнулись с тем, что записаные тесты в итоге не могут быть воспроизведены. Например, если вы работаете с Site Actions, то эти тесты падают сразу после открытия меню. Все дело в том, что перед тем как использовать элементы меню, на него необходимо перевести фокус, т.е. сделать его активным. В этом вам поможет метод mouseOver(). Итак, для того, чтобы воспользоваться каким-либо элементом, вам нужно произвести следующую последовательность действий:

click(element id)

mouseOver(element id)

clickAndWait(element id)   

 Например для того, чтобы перейти на страницу All Site Content нужно сделать следующее (для примера приведен фрагмент HTML скрипта):

  1. <tr>
  2.     <td>click</td>
  3.     <td>link=Site Actions</td>
  4.     <td></td>
  5. </tr>
  6. <tr>
  7.     <td>mouseOver</td>
  8.     <td>//td[@id='ctl00_PlaceHolderTopNavBar_SiteActionsMenuMain_ctl00_wsaViewAllContent']</td>
  9.     <td></td>
  10. </tr>
  11. <tr>
  12.     <td>clickAndWait</td>
  13.     <td>//td[@id='ctl00_PlaceHolderTopNavBar_SiteActionsMenuMain_ctl00_wsaViewAllContent']</td>
  14.     <td></td>
  15. </tr>

Стоит немного подробнее остановиться на том, откуда берутся ID элементов. Часть SiteActionsMenuMain_ctl00_wsaViewAllContent всегда будет оставаться постоянной, а вот все, что перед ней, будет зависеть от дизайна вашего приложения. В примере приведен фрагмент скрипта который будет работать на сайтах для которых расположение элемента Site Actions не изменялось относительно стандартного дизайна. Обратите внимание, что для системных страниц этот ID будет другим, наример, тот же пункт View All Site Content будет иметь следующий ID (приведенный ID также справедлив только для референсного SharePoint дизайна):

ctl00_PlaceHolderTopNavBar_IdTopNavBar_SiteActionsMenu_ctl00_wsaViewAllContent

Для того, чтобы добраться до пунктов находящихся на втором уровне меню (например, Modify All Site Settings), необходимо сделать следующее (для примера приведен фрагмент HTML скрипта):

  1. <tr>
  2.     <td>click</td>
  3.     <td>link=Site Actions</td>
  4.     <td></td>
  5. </tr>
  6. <tr>
  7.     <td>mouseOver</td>
  8.     <td>//td[@id='ctl00_PlaceHolderTopNavBar_SiteActionsMenuMain_ctl00_SiteSettingsOptions']</td>
  9.     <td></td>
  10. </tr>
  11. <tr>
  12.     <td>mouseOver</td>
  13.     <td>//td[@id='ctl00_PlaceHolderTopNavBar_SiteActionsMenuMain_ctl00_AllSiteSettings']</td>
  14.     <td></td>
  15. </tr>
  16. <tr>
  17.     <td>clickAndWait</td>
  18.     <td>//td[@id='ctl00_PlaceHolderTopNavBar_SiteActionsMenuMain_ctl00_AllSiteSettings']</td>
  19.     <td></td>
  20. </tr>

То есть, так же как и в случае с элементами первого уровня необходимо перейти к нужному элементу и только потом кликнуть по нему.

Для наглядности, ниже приведены ID для Site Actions для сайта основанного на стандартном Publishing Template.

Не забывайте, что для системных страниц ctl00_PlaceHolderTopNavBar_ нужно заменить на ctl00_PlaceHolderTopNavBar_IdTopNavBar_ .

 В качестве примера в аттаче к статье находится zip архив с примером теста написаного на Java. Тест "пробегается" по всем пунктам Site Actions меню, после чего открывает страничку All Site Settings, делает back, переходит на страницу Create Page с помощью Site Actions и потом снова делает back в браузере. Для запуска теста не забудьте изменить URL тестового сайта в файле SiteActions.properties, а также добавить правильные пути в файле .classpath. Этот тест можно запустить на сайте созданном с использованием стандартного Publishing Template.

Все сказанное выше справедливо и для других меню SharePoint: Page Editor Toolbar и для тулбара листов.

Пока что все...

 

+++++++---

Отправить комментарий

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.
  • Pairs of<blockquote> tags will be styled as a block that indicates a quotation.
  • Textual smileys will be replaced with graphical ones.

Подробнее о форматировании