DoubleTap Support by rafe-g · Pull Request #444 · appium/java-client · GitHub
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions src/main/java/io/appium/java_client/TouchAction.java
16 changes: 16 additions & 0 deletions src/main/java/io/appium/java_client/TouchShortcuts.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,22 @@ public interface TouchShortcuts {
* @param el The element to pinch.
*/
void zoom(WebElement el);

/**
* Convenience method for double tapping element at a coordinate.
*
* @param element we want to double tap.
* @param x x coordinate.
* @param y y coordinate.
*/
void doubleTap(WebElement element, int x, int y);

/**
* Convenience method for double tapping center of an element.
*
* @param element we want to double tap.
*/
void doubleTap(WebElement element);

/**
* Convenience method for tapping a position on the screen.
Expand Down
14 changes: 14 additions & 0 deletions src/main/java/io/appium/java_client/android/AndroidDriver.java
Original file line number Diff line number Diff line change
Expand Up @@ -389,4 +389,18 @@ public void lockDevice() {
public void unlockDevice() {
CommandExecutionHelper.execute(this, unlockCommand());
}

/**
* @see TouchShortcuts#doubleTap(WebElement, int, int).
*/
@Override public void doubleTap(WebElement element, int x, int y) {
throw new UnsupportedOperationException("Support has not been added in the android driver.");
}

/**
* @see TouchShortcuts#doubleTap(WebElement).
*/
@Override public void doubleTap(WebElement element) {
throw new UnsupportedOperationException("Support has not been added in the android driver.");
}
}
17 changes: 17 additions & 0 deletions src/main/java/io/appium/java_client/ios/IOSDriver.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import io.appium.java_client.CommandExecutionHelper;
import io.appium.java_client.FindsByIosUIAutomation;
import io.appium.java_client.MobileSelector;
import io.appium.java_client.TouchAction;
import io.appium.java_client.ios.internal.JsonToIOSElementConverter;
import io.appium.java_client.remote.MobilePlatform;
import io.appium.java_client.service.local.AppiumDriverLocalService;
Expand Down Expand Up @@ -272,4 +273,20 @@ class IOSAlert implements Alert {
}

}

/**
* @see TouchShortcuts#doubleTap(WebElement, int, int).
*/
@Override public void doubleTap(WebElement element, int x, int y) {
TouchAction action = new TouchAction(this);
action.doubleTap(element, x, y).perform();
}

/**
* @see TouchShortcuts#doubleTap(WebElement).
*/
@Override public void doubleTap(WebElement element) {
TouchAction action = new TouchAction(this);
action.doubleTap(element).perform();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,18 @@ public void swipe(int startx, int starty, int endx, int endy, int duration) {
.release();
swipeAction.perform();
}

/**
* @see TouchShortcuts#doubleTap(WebElement, int, int).
*/
@Override public void doubleTap(WebElement element, int x, int y) {
throw new UnsupportedOperationException("Support has not been added in the YouiEngineDriver.");
}

/**
* @see TouchShortcuts#doubleTap(WebElement).
*/
@Override public void doubleTap(WebElement element) {
throw new UnsupportedOperationException("Support has not been added in the YouiEngineDriver.");
}
}
2 changes: 1 addition & 1 deletion src/main/java/org/openqa/selenium/WebDriver.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@

package org.openqa.selenium;

import org.openqa.selenium.logging.Logs;
import org.openqa.selenium.logging.LoggingPreferences;
import org.openqa.selenium.logging.Logs;

import java.net.URL;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public class AndroidGestureTest extends BaseAndroidTest {
assertEquals("ON" ,driver
.findElementById("io.appium.android.apis:id/button_toggle").getText());
}

@Test public void singleElementTapTest() throws Exception {
driver.startActivity("io.appium.android.apis", ".view.Buttons1");
driver.tap(1, driver.findElementById("io.appium.android.apis:id/button_toggle"), 1000);
Expand Down