/* ************************************************************************ qxwebdriver-java http://github.com/qooxdoo/qxwebdriver-java Copyright: 2014 1&1 Internet AG, Germany, http://www.1und1.de License: LGPL: http://www.gnu.org/licenses/lgpl.html EPL: http://www.eclipse.org/org/documents/epl-v10.php See the license.txt file in the project's top-level directory for details. Authors: * Daniel Wagner (danielwagner) ************************************************************************ */ package org.oneandone.qxwebdriver.interactions; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.interactions.ButtonReleaseAction; import org.openqa.selenium.interactions.ClickAndHoldAction; import org.openqa.selenium.interactions.MoveMouseAction; import org.openqa.selenium.interactions.MoveToOffsetAction; import org.openqa.selenium.internal.Locatable; /** * Interactions for qx.Desktop widgets */ public class Actions extends org.openqa.selenium.interactions.Actions { public Actions(WebDriver driver) { super(driver); } /** * Drag and drop action with additional mouse move required by qooxdoo. */ public Actions dragAndDrop(WebElement source, WebElement target) { action.addAction(new ClickAndHoldAction(mouse, (Locatable) source)); // qx needs an additional mousemove event to initialize a drag session action.addAction(new MoveToOffsetAction(mouse, null, 5, 5)); action.addAction(new MoveMouseAction(mouse, (Locatable) target)); action.addAction(new ButtonReleaseAction(mouse, (Locatable) target)); return this; } }