Q群里有时候会有人问,selenium  webdriver怎么实现把一个元素拖放到另一个元素里面。这一节总一下元素的拖放。

下面这个页面是一个演示拖放元素的页面,你可以把左右页面中的条目拖放到右边的div框中。

http://koyoz.com/demo/html/drag-drop/drag-drop.html

现在来看看selenium webdriver是怎么实现drag and drop的吧。let‘s go!

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions; public class DragAndDrop { /**
* @author gongjf
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.setProperty("webdriver.firefox.bin","D:\\Program Files\\Mozilla Firefox\\firefox.exe");
WebDriver dr = new FirefoxDriver();
dr.get("http://koyoz.com/demo/html/drag-drop/drag-drop.html"); //首先new出要拖入的页面元素对象和目标对象,然后进行拖入。
WebElement element = dr.findElement(By.id("item1"));
WebElement target = dr.findElement(By.id("drop"));
(new Actions(dr)).dragAndDrop(element, target).perform(); //利用循环把其它item也拖入
String id="item" ;
for(int i=2;i<=6;i++){
String item = id+i;
(new Actions(dr)).dragAndDrop(dr.findElement(By.id(item)), target).perform();
}
} }

代码很简单,需要注意的是(new Actions(dr)).dragAndDrop(element, target).perform();这句话中,dragAndDrop(element, target)这个方法是定义了“点击element元素对象,然后保持住,直到拖到目标元素对象里面才松开”这一系列动作的Actions,如果你不调用perform()方法,这个Actions是不会执行的。over!

Selenium常用操作汇总二——如何把一个元素拖放到另一个元素里面(转)的更多相关文章

  1. Selenium常用操作汇总二——如何操作select下拉框

    下面我们来看一下selenium webdriver是如何来处理select下拉框的,以http://passport.51.com/reg2.5p这个页面为例.这个页面中有4个下拉框,下面演示4种选 ...

  2. Selenium常用操作汇总二——如何操作cookies(转)

    Web 测试中我们经常会接触到Cookies,一个Cookies主要属性有”所在域.name.value.有效日期和路径",下面来讲一下怎么操作Cookies. import java.ut ...

  3. Selenium常用操作汇总二——如何处理alert、confirm、prompt对话框

    alert.confirm.prompt这样的js对话框在selenium1.X时代也是难啃的骨头,常常要用autoit来帮助处理. 试用了一下selenium webdriver中处理这些对话框十分 ...

  4. Selenium常用操作汇总二——iframe的处理

    有时候我们在定位一个页面元素的时候发现一直定位不了,反复检查自己写的定位器没有任何问题,代码也没有任何问题.这时你就要看一下这个页面元素是否在一个iframe中,这可能就是找不到的原因之一.如果你在一 ...

  5. Selenium常用操作汇总二——如何得到弹出窗口

    在selenium 1.X里面得到弹出窗口是一件比较麻烦的事,特别是新开窗口没有id.name的时候.当时还整理了处理了几种方法,详见:http://seleniumcn.cn/read.php?ti ...

  6. selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面(转)

    selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面 博客分类: Selenium-webdriver 元素拖放drag and drop  Q群里 ...

  7. python3+selenium常用语法汇总

    Selenium常用语法总结 一.Selenium常用定位语法 1.元素定位 (1)ID定位元素: find_element_by_id(‘’) (2)通过元素的类名称定位元素: find_eleme ...

  8. java selenium常用API汇总

    (WebElement.iFrame.select.alert.浏览器窗口.事件.js)     一 WebElement相关方法 1.点击操作 WebElement button = driver. ...

  9. Kotlin——初级篇(八):关于字符串(String)常用操作汇总

    在前面讲解Kotlin数据类型的时候,提到了字符串类型,当然关于其定义在前面的章节中已经讲解过了.对Kotlin中的数据类型不清楚的同学.请参考Kotlin--初级篇(三):数据类型详解这篇文章. 在 ...

随机推荐

  1. 【Unity】12.2 导航网格寻路简单示例

    开发环境:Win10.Unity5.3.4.C#.VS2015 创建日期:2016-05-09 一.简介 本节通过一个简单例子,演示如何利用静态对象实现导航网格,并让某个动态物体利用导航网格自动寻路, ...

  2. angular学习笔记(三十)-指令(9)-一个简单的指令示例

    学了前面这么多关于指令的知识,现在就用指令来写一个小组件:expander 这个组件的功能就是点击开展菜单,再点击收起菜单: ↑↓点击展开收起 下面来看它的代码: html: <!DOCTYPE ...

  3. 每日英语:Marriage makes our children richer — Here's why

    Young people from less-privileged homes are more likely to graduate from college and earn more if ra ...

  4. cocos2dx-lua class解析

    function class(classname, super) local superType = type(super) local cls --如果父类既不是函数也不是table则说明父类为空 ...

  5. centos6安装部署git服务器(gitlab6.4)

    环境准备 python版本2.6git版本 1.8.4.1ruby版本ruby-2.0.0-p353gitlab-shell版本 v1.8.0gitlab版本6.4.3 因centos6系列的pyth ...

  6. LearnOpenGL 你好,三角形[转]--附源码

    原地址:你好,三角形 你好,三角形 原文 Hello Triangle 作者 JoeyDeVries 翻译 Django 校对 Geequlim 译注 在学习此节之前,建议将这三个单词先记下来: 顶点 ...

  7. 【驱动】linux驱动程序开发及环境搭建

    1.mystery引入 1)设备驱动程序对外提供如下的功能:        1)设备初始化:对硬件设备进行初始化操作        2)数据交换:数据交换包括由内核层向硬件层传送数据.从硬件层读取数据 ...

  8. MyBatis SqlSessionFactory的几种常见创建方式

    原文链接:https://blog.csdn.net/jimolangge123/article/details/49228255 MyBatis框架主要是围绕着SqlSessionFactory这个 ...

  9. Python+SparkStreaming+kafka+写入本地文件案例(可执行)

    从kafka中读取指定的topic,根据中间内容的不同,写入不同的文件中. 文件按照日期区分. #!/usr/bin/env python # -*- coding: utf-8 -*- # @Tim ...

  10. Windows删除/修改注册表权限不足的解决方法

    在注册表的某些关键项(譬如:System.Root),连Administrator都没有权限进行修改,因为只有“system”有权限. [警告]切勿企图进行注册表上层权限覆盖低层权限的方式来使Admi ...