//@author jzhang6
public void dragAndDropOffset(WebDriver driver,WebElement dragableEl, WebElement dropableEl, int offsetX, int offsetY){
Actions action = new Actions(driver);
action.clickAndHold(dragableEl).build().perform();
action.moveByOffset(offsetX, offsetY);
action.release(dropableEl);
action.build().perform();
}
//@author jzhang6
public void dragWidget(String widgetName){
WebElement widgetIconEl=page.getWidgetIconInDockMenu(widgetName);
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", widgetIconEl); WebElement workspaceEl=page.getWorkSpace();
Point initialPositon = widgetIconEl.getLocation();
Point targetPositon = workspaceEl.getLocation();
int offsetX = (targetPositon.getX() - initialPositon.getX())/2;
int offsetY = (targetPositon.getY() - initialPositon.getY())/2;
System.out.println("Drag widget to : ("+offsetX+","+offsetY+")"); WebElement dropableEl=page.getDropableIconInWorkspace(); this.dragAndDropOffset(driver,widgetIconEl,dropableEl,offsetX, offsetY); SeleniumUtil.waitUntilAllAjaxRequestCompletes(driver);
this.waitForLoadingDoneInNewWebPage(driver);
}

[Selenium]计算坐标进行拖拽,重写dragAndDropOffset的更多相关文章

  1. 【Selenium-WebDriver问题篇】Selenium实现元素的拖拽(java版)(转)

    https://blog.csdn.net/u010503127/article/details/51381284 Selenium实现元素的拖拽(java版) [前言] 自从淘宝网登陆页出现滑块验证 ...

  2. Selenium - 实现网页元素拖拽

    Drag and Drop, 使用鼠标实现元素拖拽的操作貌似很复杂, 在Selenium中, 借助OpenQA.Selenium.Interactions.Actions类库中提供的方法, 实现起来还 ...

  3. vue 拖拽移动(类似于iPhone虚拟home )

    vue 移动端 PC 兼容 元素 拖拽移动  效果演示 事件知识点 移动端 PC端 注释 touchstart mousedown 鼠标/手指按下事件 touchmove mousemove 鼠标/手 ...

  4. 可拖拽GridView代码解析

    本片学习笔记是对eoe网上一个项目代码的解读.详细项目作者的博客例如以下:http://blog.csdn.net/vipzjyno1/article/details/26514543.项目源代码下载 ...

  5. Javascript 事件对象进阶(二)拖拽的应用 - 登录框的拖拽

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  6. Android Launcher拖拽事件详解【android4.0--Launcher系列二】

    AndroidICS4.0版本的launcher拖 拽的流程,基本和2.3的相似.就是比2.3写的封装的接口多了一些,比如删除类的写法就多了个类.等等.4.0的改变有一些,但是不是特别大.这个月一 直 ...

  7. js拖拽原理及简单实现(渣渣自学)

    第一步 首先简单分析下需求吧,我们就是想实现鼠标拖拽带颜色的方块时,让方块停留在鼠标松开的位置,需要计算的就是拖拽前的坐标和拖拽后的坐标,鼠标移动后相对于原位置的偏移量=目标元素的偏移量,根据这个等式 ...

  8. h5拖放-拖拽购物车

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. Android -- 实现RecyclerView可拖拽Item

    1,今天和大家一起实现RecyclerView可拖拽Item,主要是使用RecyclerView结合ItemTouchHelper来实现的,来看一下效果 2,看一下怎么实现的呢,很简单,只需要给rec ...

随机推荐

  1. Visual C#中的winform/webform/asp.net控件命名规范

                                                                            1.控件命名规范 类型 前缀 示例 AdRotator ...

  2. [Luogu3733][HAOI2017]八纵八横

    luogu sol 线性基+线段树分治傻题. 复杂度应该是\(O((n+m\log n)\frac{L^2}{\omega})\)? code #include<cstdio> #incl ...

  3. Documentation/kobject.txt翻译--sysfs

    你从未想过的关于kobjects,ksets和ktypes的一切:作者:Greg Kroah-Hartman <gregkh@linuxfoundation.org>:上次更新时间:200 ...

  4. C#拦截系统消息

    首先我们看下有哪几种拦截系统消息的方法:  //一.截取系统消息//方法一://添加监视消息private void Form_Load(object sender, System.EventArgs ...

  5. 排列组合算法(基于c++实现)

    排列 全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个.现以{1, 2, 3}为例说明如何编写全排列的递归算法 第一层S1表示第一个数分别与第1.2.3个数交换位置,如123 ...

  6. Jqmobile Secha Ionic比较

    1. Jqmobile 轻量级框架,它的语言基于 jquery 语言容易上手,运行速度快,但是没有 MVC 多人协作 开发的概念,项目比较大后 代码不易维护     (中小项目  1-2 个人开发很适 ...

  7. 《快学Scala》

    Robert Peng's Blog - https://mr-dai.github.io/ <快学Scala>Intro与第1章 - https://mr-dai.github.io/S ...

  8. Mysql 创建外键 1005 err 150

    要看错误的详细提示,可以使用命令:(在MySQL Manual里搜索“errno 150”时找到) SHOW ENGINE INNODB STATUS;     //针对用INNODB存储方式的数据库 ...

  9. Spark在Windows下的环境搭建

    本文转载自:http://blog.csdn.net/u011513853/article/details/52865076 由于Spark是用Scala来写的,所以Spark对Scala肯定是原生态 ...

  10. springMVC等小知识点记录。。。持续更新

    1.springMVC 项目根路径访问页面配置 <!-- 表示当访问主页时自动转发到index控制器 --> <mvc:view-controller path="/&qu ...