WebDriver拾级而上·之十五 拖曳动作模拟

如何把一个元素拖放到另一个元素里面
下面这个页面是一个演示拖放元素的页面,你可以把左右页面中的条目拖放到右边的div框中。
http://koyoz.com/demo/html/drag-drop/drag-drop.htm
WebDriver拾级而上路之十五<wbr>拖曳动作模拟

Java代码

package com.test;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;


public class Test_DragAndDrop {
public static void main(String[] args) {
WebDriver dr = new ChromeDriver(); <wbr></wbr>
<wbr><wbr>dr.get("http://koyoz.com/demo/html/drag-drop/drag-drop.html");</wbr></wbr>
<wbr><wbr>//首先new出要拖入的页面元素对象<span style="word-wrap:normal; word-break:normal; line-height:21px">element</span>和目标对象<span style="word-wrap:normal; word-break:normal; line-height:21px">target</span>,然后进行拖入。 <wbr></wbr></wbr></wbr>
WebElement <wbr>element = dr.findElement(By.id("item1")); <wbr></wbr></wbr>
WebElement <wbr>target = dr.findElement(By.id("drop")); <wbr></wbr></wbr>
(new Actions(dr)).dragAndDrop(element, target).perform();<wbr><wbr></wbr></wbr>
//利用循环把其它item也拖入 <wbr></wbr>
String id="item" ; <wbr></wbr>
for(int i=2;i<=6;i++){
String item = id+i; <wbr></wbr>
(new Actions(dr)).dragAndDrop(dr.findElement(By.id(item)), target).perform(); <wbr></wbr>
}
<wbr><wbr>//dr.quit(); <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
}
}



=================================================
附:如何利用Actions类模拟鼠标和键盘的操作
actions类,主要定义了一些模拟用户的鼠标mouse,键盘keyboard操作。对于这些操作,使用perform()方法进行执行。
actions类可以完成单一的操作,也可以完成几个操作的组合。

单一的操作
单一的操作是指鼠标和键盘的一个操作。如鼠标左键按下、弹起或输入一个字符串等。
前面涉及到鼠标键盘操作的一些方法,都可以使用actions类中的方法实现,比如:click,sendkeys。

WebElement <wbr>element = dr.findElement(By.id("test")); <wbr></wbr></wbr>
<wbr>WebElement <wbr>element1 = dr.findElement(By.id("test1")); <wbr></wbr></wbr></wbr>
element.sendKeys("test");
element1.click;

用Actions类就可以这样实现:
//新建一个action
Actions action=new Actions(driver);
//操作
WebElement element=dr.findElement(By.id("test"));
WebElement element1=dr.findElement(By.id("su"));
action.sendKeys(element,"test").perform();
action.moveToElement(element1);
action.click().perform();

看起来用Actions类实现click和sendKeys有点烦索


组合操作
组合操作就是几个动作连在一起进行操作。如对一个元素的拖放。
<wbr>(new Actions(dr)).dragAndDrop(dr.findElement(By.id(item)), target).perform();</wbr>

可以直接调用dragAndDrip()方法,也可以像下面濱示的一样把几个操作放一起实现
Action dragAndDrop = builder.clickAndHold(someElement)
<wbr><wbr><wbr><wbr>.moveToElement(otherElement)</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>.release(otherElement)</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>.build().perform(); <wbr></wbr></wbr></wbr></wbr></wbr>
其他鼠标或键盘操作方法可以具体看一下API里面的org.openqa.selenium.interactions.Actions类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值