码迷,mamicode.com
首页 > 编程语言 > 详细

Java Selenium Actions模拟鼠标拖动dragAndDrop总结

时间:2020-03-16 18:53:18      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:pat   一个   出现   build   for   ddr   总结   就是   fir   

鼠标拖动API
Actions action = new Actions(webdriver);
##source-要拖动的元素A,target-拖动元素A到达的目标元素
action.dragAndDrop(source, target);
##source-要拖动的元素A,拖动元素移动多少,标准以元素A左上角为准,拖动元素相对元素A移到右边是x是正值,左边是负值,拖动元素相对元素A移到上边是y是负值,下边是正值,
action.dragAndDropBy(source, xOffset, yOffset);

eg:
//找到我们所要拖动的元素A
WebElement A = driver.findElement(By.xpath("//*[@id=\"ext-gen153\"]/li[1]/div"));
WebElement B=driver.findElement(By.xpath("//*[@id=\"ext-gen153\"]/li[2]/div"));
Actions action = new Actions(driver.getDriver());
//鼠标拖动A向左移动530,之后释放鼠标
action.dragAndDropBy(A, -570, 0).perform();
// 鼠标拖动B向下移动100,向左移动570之后释放鼠标
action.dragAndDropBy(k2, -570, 100).perform();
##注意:拖动元素之间最好加强制休眠时间,否则不定时出问题,也不报错,有你哭的
action.dragAndDrop(A, B).perform();
driver.sleep(2000);
action.dragAndDrop(B, A).perform();

有时定位没问题,代码没问题,就是没效果,那就考虑一下拖拽在不同的浏览器的工作效果
For firefox :

Actions builder = new Actions(driver);
builder.moveToElement(draggable).clickAndHold();
builder.moveToElement(target).click().perform();

For chrome :

Actions builder = new Actions(driver);
builder.moveToElement(draggable).clickAndHold(draggable);
builder.moveToElement(target).release(target).perform();

重中之重:
拖动元素有一个最重要的前提是,你定位的xpath等一定要准确,否则,到时候会出现各种拖动错乱的问题:
1
eg
1.拖动元素如果用到action.dragAndDropBy(k2, -570, 100).perform();比如,如果我们想把A元素(可能为图标)拖动到B区域可能用到这个方法,但是把A拖动到B区域之后,如果我们又想把此时的A拖动到其它地方,但是此时A没有id,class,只有一些看似没用的x,y,w,h,注意:这里一定要注意这里的这四个值,因为当我们刚开始调用action.dragAndDropBy(k2, -570, 100).perform();时,此时拖动完之后,那么绝对此时的x或者y或者w或者h一定是唯一值,那么我们抓住这个要点就可以定位了
2.定位参考:
WebElement A=driver.findElement(By.xpath("//*[contains(@x,‘50‘)]"));
//"任务跨1"节点
WebElement B=driver.findElement(By.xpath("//*[contains(@y,‘150‘)]"));

总结:
1.注意拖动之后属性的唯一性
2.dragAndDrop

Java Selenium Actions模拟鼠标拖动dragAndDrop总结

标签:pat   一个   出现   build   for   ddr   总结   就是   fir   

原文地址:https://www.cnblogs.com/soundcode/p/12505812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!