使用Selenium测试jQuery拖放和Droppable功能

4
我有一个页面使用了jQuery拖放功能,并且我想使用Selenium来构建一个相对健壮的测试套件来测试这个过程。
研究Selenium时,我发现它有一个像FullCalendar一样的jQuery插件上的拖放命令,但是当我使用Selenium IDE尝试记录“拖放”时,我没有得到任何记录的事件。
所以我应该尝试使用jQuery选择器来定位事件吗?
因为以下内容不起作用(针对示例页面上的'12p Lunch')。
<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都无法找到。那么我该如何定位这个变化的元素呢?如果选择器中有一个唯一的id,我能够定位它吗?无论哪种方式,拖放似乎都不起作用:
<tr>
    <td>dragAndDrop</td>
    <td>id=targetelement</td>
    <td>+100,+100</td>
</tr>

我能否使用jQuery选择“位置”中的元素?
<tr>
    <td>dragAndDrop</td>
    <td>selenium.getuserwindow.browserbot.jQuery('#targetelement')</td>
    <td>+100,0</td>
</tr>
1个回答

4

这对我有用...

<!--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>

你在使用我提供的示例页面吗?我找不到你提到的ID - 你有把它们添加到页面上吗? - jordan.baucke
不,这是我在另一个项目中测试成功的示例,它展示了整个过程。 - chim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接