Тестирование jQuery Drag & Drop и Droppable с Selenium - PullRequest
4 голосов
/ 19 октября 2011

У меня есть страница, использующая jQuery Drag & Drop, и я хотел бы построить относительно надежный набор тестов для этого процесса, используя Selenium .

Рассматривая Selenium, яЯ обнаружил, что у него есть команда Drag & Drop для плагина jQuery, например: FullCalendar , но когда я использую Selenium IDE для записи «перетаскивания»,получить любые записанные события.

Так я должен попытаться нацелить события, используя селекторы jQuery?

Поскольку следующее не работает (нацеливание на "12p Обед" на странице примера )

<tr>
    <td>dragAndDrop</td>
    <td>/html/body/div[2]/div/div/div[2]/div/div/div/div/div[8]/div</td>
    <td>+100,+100</td>
</tr>

или даже нажатие на элемент

<tr>
    <td>click</td>
    <td>/html/body/div[2]/div/div/div[2]/div/div/div/div/div[8]/div</td>
    <td>+100,+100</td>
</tr>

В обоих случаях XPath не найден.Так, как я могу предназначаться для этого изменяющегося элемента?Если бы у меня был уникальный идентификатор в селекторе, я мог бы нацелиться на это?В любом случае, кажется, что перетаскивание не работает:

<tr>
    <td>dragAndDrop</td>
    <td>id=targetelement</td>
    <td>+100,+100</td>
</tr>

Также можно ли нацеливать элементы в 'Location' с помощью jQuery?

<tr>
    <td>dragAndDrop</td>
    <td>selenium.getuserwindow.browserbot.jQuery('#targetelement')</td>
    <td>+100,0</td>
</tr>

1 Ответ

4 голосов
/ 19 октября 2011

Это работает для меня ...

<!--test sorting-->
<!--move block 2 to col 1-->
<tr>
    <td>mouseDownAt</td>
    <td>//div[@id="block-set-col-1"]/ul/li</td>
    <td>80,20</td>
</tr>
<tr>
    <td>mouseMoveAt</td>
    <td>//div[@id="block-set-col-0"]/ul</td>
    <td>50,10</td>
</tr>
<tr>
    <td>mouseOver</td>
    <td>//div[@id="block-set-col-0"]/ul</td>
    <td>50,10</td>
</tr>
<tr>
    <td>pause</td>
    <td>2000</td>
    <td></td>
</tr>
<tr>
    <td>mouseUpAt</td>
    <td>//div[@id="block-set-col-0"]/ul</td>
    <td>50,10</td>
</tr>
...