【问题标题】:Testing jQuery Drag & Drop and Droppable with Selenium使用 Selenium 测试 jQuery 拖放和 Droppable
【发布时间】:2011-12-10 10:51:18
【问题描述】:

我有一个使用 jQuery Drag & Drop 的页面,我想使用 Selenium 为这个过程构建一个相对强大的测试套件。

查看 Selenium,我发现它在 jQuery 插件上有一个 Drag & Drop 命令,例如:FullCalendar,但是当我使用 Selenium IDE 尝试记录“拖动和放置”时我没有得到任何记录的事件。

那么我应该尝试使用 jQuery 选择器来定位事件吗?

因为以下方法不起作用(针对example page 上的“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。那么我该如何定位这个不断变化的元素呢?如果我在选择器中有一个 unique 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>

【问题讨论】:

    标签: jquery testing selenium drag-and-drop selenium-ide


    【解决方案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>
    

    【讨论】:

    • 您在使用我引用的示例页面吗?我找不到您引用的 ID - 您是否将它们添加到页面中?
    • 不,这是一个在另一个项目中对我有用的测试,它演示了这个过程
    猜你喜欢
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多