[Selenium]计算坐标进行拖拽,重写dragAndDropOffset

//@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);
	}
时间: 2025-01-02 04:23:20

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

js的窗口坐标及拖拽

一.事件对象的坐标属性1.事件对象.offsetX 对象事件.offsetY 点击时,获取的是标签左上角的坐标2.事件对象.clientX 事件对象.clientY 点击时,视窗左上角坐标3.事件对象.pageX 事件对象.pageY 点击时,页面左上角坐标 如果没有滚动,页面左上角和视窗的左上角重合,两个数值是不同的 var oDiv = document.querySelector('div'); oDiv.onclick = function(e){ //获取对象内容左上角坐标 var x

Selenium - 实现网页元素拖拽

Drag and Drop, 使用鼠标实现元素拖拽的操作貌似很复杂, 在Selenium中, 借助OpenQA.Selenium.Interactions.Actions类库中提供的方法, 实现起来还是比较简单的.道理如下: 1. 找到要拖拽的页面元素-源(source). 2. 找到要释放的页面元素-目标(target), 页面显示的这个元素可能是个坑, 但是在页面代码中他就是一个元素. 3. 借助(new Actions(IWebDriver)).DragAnddrop( source, t

可拖拽GridView代码解析

本片学习笔记是对eoe网上一个项目代码的解读,具体项目作者的博客如下:http://blog.csdn.net/vipzjyno1/article/details/26514543.项目源码下载地址为https://github.com/Rano1/TopNews本篇只对可拖拽的GridView的代码进行解读,同时修改了原项目中不必要的变量.去掉了不必要或者逻辑错误的代码,也删除了方法中不必要的局部变量和计算.通过对这个读这个代码,自己也着实学到了不少的东西(毕竟自己刚接触android不久,特

Android drawPath实现QQ拖拽泡泡

这两天学习了使用Path绘制贝塞尔曲线相关,然后自己动手做了一个类似QQ未读消息可拖拽的小气泡,效果图如下: 接下来一步一步的实现整个过程. 基本原理 其实就是使用Path绘制三点的二次方贝塞尔曲线来完成那个妖娆的曲线的.然后根据触摸点不断绘制对应的圆形,根据距离的改变改变原始固定圆形的半径大小.最后就是松手后返回或者爆裂的实现. Path介绍: 顾名思义,就是一个路径的意思,Path里面有很多的方法,本次设计主要用到的相关方法有 moveTo() 移动Path到一个指定的点 quadTo()

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

AndroidICS4.0版本的launcher拖 拽的流程,基本和2.3的相似.就是比2.3写的封装的接口多了一些,比如删除类的写法就多了个类.等等.4.0的改变有一些,但是不是特别大.这个月一 直在改动Launcher的缩略图的效果,4.0的缩略图的功能没有实现,还得从2.3的Launcher中摘出来.通过做这个缩略图对Launcher 的模块有一点点了解,拿来分享一下Launcher拖拽的工作流程.有图有真相!   (1) 先来看看类之间的继承关系      图(1)  (2)再来看看La

jquery鼠标 左键-中键-右键 实现 单击-双击-拖拽-滚动 原型

javascript:<script type="text/javascript" src="jquery-1.8.3.min.js"></script><script type="text/javascript">$(function () {    var changeName = $("#result");           // 滚动监听初始化    // Mozilla的基于DO

拖拽弹出框

<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>拖拽效果</title> <style type="text/css"> body{ background: url(images/baidu_demo.p

一步一步实现JS拖拽插件

js拖拽是常见的网页效果,本文将从零开始实现一个简单的js插件. 一.js拖拽插件的原理 常见的拖拽操作是什么样的呢?整过过程大概有下面几个步骤: 1.用鼠标点击被拖拽的元素 2.按住鼠标不放,移动鼠标 3.拖拽元素到一定位置,放开鼠标 这里的过程涉及到三个dom事件:onmousedown,onmousemove,onmouseup.所以拖拽的基本思路就是: 1.用鼠标点击被拖拽的元素触发onmousedown (1)设置当前元素的可拖拽为true,表示可以拖拽 (2)记录当前鼠标的坐标x,y

拖拽效果的实现原理分析2

拖拽效果的实现原理分析2 上文对html5支持的浏览器的拖拽效果进行了分析,本文不采用任何库,来分析下拖拽的过程 先想想我们平时拖拽是怎么操作的,大致可以分为几下几个步骤: 鼠标按下,鼠标移动,拖拽,被拖动的物件跟着走 鼠标松开,物件停止,无拖动了 计算距离,拖拽的距离(鼠标移动) 对应在事件上就是 onmousedown,onmousemove ,开始拖拽 onmouseup ,停止拖拽 计算相对的拖拽距离 下面我们按照这种思路,写一个拖拽效果,假设我们拖动标题,这块的内容就跟着走. 首先我们