今天工作中遇到了selenium中录制拖拽动作需求:在同一个页面上,将一个table中的元素拖拽到另外一个table中。

通过查看帮助文档是使用dragAndDrop或类似的命令。根据使用方法dragAndDrop(locator, movementsString),写入下面的脚本:

<tr>
<td>dragAndDropToObject</td>
<td>//div/div/div/table/tbody/tr[2]/td/div</td>
<td>+652,+638</td>
</tr>

运行后,命令运行通过但是并没有实现拖拽动作。从网上百度后,发现好多网友说dragAndDrop命令不太好用,可以通过鼠标事件模拟拖拽。因此借鉴过来,写入命令如下:

<tr>
<td>mouseDownAt</td>
<td>//div/div/div/table/tbody/tr[2]/td/div</td>
<td>+394,+156</td>
</tr>
<tr>
<td>mouseMove</td>
<td>//div/div/div/table/tbody/tr[2]/td/div</td>
<td></td>
</tr>
<tr>
<td>mouseUpAt</td>
<td>//td[2]/div</td>
<td>+652,+638</td>
</tr>

运行后实现了拖拽动作。具体的mouseDownAt、mouseMove、mouseUpAt命令可以查看selenium帮助文档。有其它网友是通过mouseDownAt、mouseMoveAt、mouseUpAt命令实现的,感觉思想差不多吧,只有能实现效果就可以。

顺便说一下,由于mouseDownAt、mouseMoveAt、mouseUpAt命令的第二个参数都是坐标,那么获得元素的具体坐标也很关键。之前为如何查看页面元素坐标纠结,后来同事说有的截图软件可以查看,突然想起以前HyperSnap截图软件是可以显示坐标的。于是乎下载安装,坐标问题迎刃而解。

接下来将继续学习dragAndDrop命令,如果大家有使用成功的希望分享下。

selenium中录制拖拽动作相关推荐

  1. eclipse插件开发:自定义导航器中的拖拽定义

    有时候需要对导航器中的拖拽对象进行赋值,使用的场景是,拖拽导航器中的某个文件或者类或方法等,到某个编辑器中,, 因为默认的导航器所配备的拖拽动作,或则不能满足我们的需要,所有,有必要自定义,,拖拽器, ...

  2. 百度空间中实现拖拽、悬浮窗口效果的popup.js分析

    var Popup=new Class(); Popup.prototype={ //弹出窗口中框架的name名称 iframeIdName:'ifr_popup', initialize:funct ...

  3. .net中实现拖拽控件

    在.net中实现拖拽控件主要用到以下函数: MouseDown(object sender, MouseEventArgs e) MouseUp(object sender, MouseEventAr ...

  4. 中如何使用echart_jQueryEasyUI中的拖拽事件如何使用

    jQueryEasyUI中的拖拽事件通过给它设置代理元素使其拖拽.可设置拖动元素相对于x.y轴拖动,可设置拖拽何时停止等效果 jQuery中的easyui是一个非常好用的插件,它虽然使用简单方便,但是 ...

  5. java swing 控件拖动_java swing中实现拖拽功能示例

    java实现拖拽示例 Swing中实现拖拽功能,代码很简单,都有注释,自己看,运行效果如下图: package com; import java.awt.*;import java.awt.datat ...

  6. JavaScript中的拖拽事件且限制出界

    JavaScript中的拖拽事件限制出界 JavaScript事件中很多都会用到拖拽,而在现实中很多拖拽是会限制在浏览器界面禁止出界的,下面是封装好的限制出界的拖拽事件. function drag( ...

  7. vue中实现拖拽排序

    原生拖拽 API 实现拖拽 设置元素 dragable 将元素的 dragable 属性设置 为 true (文本 图片 链接 的draggable 属性默认为 true)则元素可拖放 <div ...

  8. xd怎么做页面滑动_XD教程 | 如何在XD中制作拖拽手势”

    原标题:XD教程 | 如何在XD中制作"拖拽手势" 今日主题:设计一个滑动交互 使用工具:Adobe XD 预计时长:1-2分钟 实用指数:★★★★★ 难度系数:★ 本期教程,我们 ...

  9. css鼠标拖拉卡顿_vue中解决拖拽改变存在iframe的div大小时卡顿问题

    写在最前 针对于在vue中实现拖拽改变两左右个div大小的方式,请查看上一篇文章<vue中实现拖动调整左右两侧div的宽度>.此文章主要针对于实际应用中需要拖拽改变大小的组件中使用ifra ...

最新文章

  1. 进程间基于消息队列的通信_Linux 进程间的通信方式
  2. appium+python 操作APP
  3. 苹果发布iOS 12.3.1正式版:更有效的屏蔽垃圾短信
  4. Activiti保存.png 流程图片文件且解决idea中保存图片时显示中文乱码的解决方法
  5. ubuntu上安装python3.7教程_给ubuntu18安装python3.7的详细教程
  6. 解决LINQ to Entities does not recognize the method 'System.String Encrypt(System.String)' method, and
  7. @async 注解使主线程不等待
  8. 中山医06年考研初试复试全攻略!( 完整版)
  9. 多元微积分_向量函数偏导
  10. 启动Solr 8.10 后访问UI报错:CoreContainer is either not initialized or shutting down.
  11. 网络摄像头无插件直播H265编码视频播放器EasyPlayer网页播放器不能播放怎么处理?
  12. 短视频选题的方法脚本结构撰写
  13. 裸金属服务器是什么?有什么特点?
  14. LTspice - 基础操作2
  15. 月薪15k的软件测试工程师需要学习什么技术?
  16. php网页采集 修改版
  17. MSDN Library Visual Studio .NET 2003 简体中文版(ISO) 免费下载
  18. java 反射(二)之提高反射的方法 setAccessible(true)
  19. 使用库函数sqrt求平方根 C语言入门
  20. Python的cookies与session

热门文章

  1. android activty动画,Activity动画效果
  2. php如何写代码禁用广告,不再显示广告案例(php操作cookie)
  3. 分段式多级离心泵_D型卧式多级泵结构组成及工作原理
  4. python框架django教程_[Python] Django框架入门3——深入视图
  5. oracle sql分析 cost,Oracle SQL的优化技巧详解
  6. Python零基础入门(四)——Python面向对象编程[学习笔记]
  7. 测试思路系列:《谷歌的软件测试之道》读书笔记
  8. 贷款利息及公积金知识点
  9. docker创建镜像之Dockerfile
  10. 21天Jmeter打卡Day19 mysql数据库提取参数化