一尘不染

使用Selenium测试jQuery拖放和Droppable

selenium

我有一个页面使用jQuery拖放,并且我想使用Selenium为此过程构建一个相对健壮的测试套件。

查看Selenium时,我发现它在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 。那么我该如何针对这个不断变化的要素呢?如果选择器中有 唯一的ID ,可以定位该 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>

阅读 225

收藏
2020-06-26

共1个答案

一尘不染

这对我有用…

<!--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>
2020-06-26