首页 > 技术文章 > [Selenium] WebDriver 操作 HTML5 中的 drag/drop

feifeidxl 2015-06-05 15:15 原文

以 jQuery UI 官方网站元素测试,地址:http://jqueryui.com/draggable/

示例:

package com.learningselenium.html5;

 

import java.util.NoSuchElementException;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

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 testActionDragAndDrop{

  WebDriver driver = new FirefoxDriver();

 

  private boolean isElementPresent(By by){

    try{

      driver.findElement(by);

      return true;

    }catch(NoSuchElemention e){

      return false;

    }

  }

 

  @Before

  public void setUp() throws Exception{

    driver.get("http://jqueryui.com/draggable/");

  }

 

  @Test

  public void testActionDragAndDrop() throws Exception{

    //switchto().frame 来切换焦点到iframe.demo-frame

    driver.switchTo().frame(driver.findElement(By.className("demo-frame")));

    Thread.sleep(3000);

    if(! isElementPresent(By.xpath("//div[@id='draggable']"))){

      Trhead.sleep(3000);

    }

    WebElement draggable = driver.findElement(By.xpath("//div[@id='draggable']"));

    new Actions(driver).dragAndDropBy(draggable,200,10).build().perform();

    Thread.sleep(10000);

  }

 

  @After 

  public void tearDown() throws Exception{

    driver.quit();

  }

}

 

推荐阅读