测试jQuery Drag&用硒滴下滴 [英] Testing jQuery Drag & Drop and Droppable with Selenium

查看:119
本文介绍了测试jQuery Drag&用硒滴下滴的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个页面,使用jQuery Drag&掉下来,我想使用 Selenium 构建一个比较强大的测试套件。



查看Selenium,我发现它有一个拖放&在jQuery插件上放下命令,如: FullCalendar ,但是当我使用Selenium IDE尝试记录'拖放我没有得到任何记录的事件。



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



由于以下内容不起作用(针对示例页面

 < 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>点击< / 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>


解决方案

这适用于我...

 <! - 测试排序 - > 
<! - 将块2移动到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>


I have a page that makes use of jQuery Drag & Drop, and I would like to build a relatively robust test suite for this process using Selenium.

Looking into Selenium, I've found that it has a Drag & Drop command on a jQuery plugin like: FullCalendar, but when I use the Selenium IDE to try to record 'dragging and dropping I don't get any recorded events.

So should I try to target the events using jQuery selectors?

Because the following don't work (targeting the '12p Lunch' on the example page)

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

or even clicking on the element

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

In both cases the XPath isn't found. So how can I target this changing element? If I had a unique id in the selector could I target that? Either way the drag&drop doesn't seem to be working:

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

Also can I target elements in the 'Location' with jQuery?

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

解决方案

This works for me...

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

这篇关于测试jQuery Drag&amp;用硒滴下滴的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆