Best io.appium code snippet using io.appium.java_client.touch.ActionOptions
TouchAction.java
Source:TouchAction.java  
...18import static com.google.common.collect.ImmutableList.builder;19import static java.util.stream.Collectors.toList;20import com.google.common.collect.ImmutableList;21import com.google.common.collect.ImmutableMap;22import io.appium.java_client.touch.ActionOptions;23import io.appium.java_client.touch.LongPressOptions;24import io.appium.java_client.touch.TapOptions;25import io.appium.java_client.touch.WaitOptions;26import io.appium.java_client.touch.offset.ElementOption;27import io.appium.java_client.touch.offset.PointOption;28import java.util.List;29import java.util.Map;30/**31 * Used for Webdriver 3 touch actions32 * See the Webriver 3 spec33 * https://dvcs.w3.org/hg/webdriver/raw-file/default/webdriver-spec.html34 * The flow is to chain individual touch actions into an entire gesture. e.g.35 * TouchAction action = new TouchAction(performsTouchActions);36 * action.press(element).waitAction(300).moveTo(element1).release().perform();37 * Calling perform() sends the action command to the Mobile Driver. Otherwise,38 * more and more actions can be chained.39 */40public class TouchAction<T extends TouchAction<T>> implements PerformsActions<T> {41    protected ImmutableList.Builder<ActionParameter> parameterBuilder;42    private PerformsTouchActions performsTouchActions;43    public TouchAction(PerformsTouchActions performsTouchActions) {44        this.performsTouchActions = checkNotNull(performsTouchActions);45        parameterBuilder = builder();46    }47    /**48     * Press action on the screen.49     *50     * @param pressOptions see {@link PointOption} and {@link ElementOption}.51     * @return this TouchAction, for chaining.52     */53    public T press(PointOption pressOptions) {54        parameterBuilder.add(new ActionParameter("press", pressOptions));55        //noinspection unchecked56        return (T) this;57    }58    /**59     * Remove the current touching implement from the screen (withdraw your touch).60     *61     * @return this TouchAction, for chaining.62     */63    public T release() {64        ActionParameter action = new ActionParameter("release");65        parameterBuilder.add(action);66        //noinspection unchecked67        return (T) this;68    }69    /**70     * Moves current touch to a new position.71     *72     * @param  moveToOptions see {@link PointOption} and {@link ElementOption}73     *                       Important: some older Appium drivers releases have a bug when moveTo74     *                       coordinates are calculated as relative to the recent pointer position75     *                       in the chain instead of being absolute.76     *                       @see <a href="https://github.com/appium/appium/issues/7486">Appium Issue #748677     *                       for more details.</a>78     * @return this TouchAction, for chaining.79     */80    public T moveTo(PointOption moveToOptions) {81        ActionParameter action = new ActionParameter("moveTo", moveToOptions);82        parameterBuilder.add(action);83        return (T) this;84    }85    /**86     * Tap on an element.87     *88     * @param tapOptions see {@link TapOptions}.89     * @return this TouchAction, for chaining.90     */91    public T tap(TapOptions tapOptions) {92        ActionParameter action = new ActionParameter("tap", tapOptions);93        parameterBuilder.add(action);94        return (T) this;95    }96    /**97     * Tap on a position.98     *99     * @param tapOptions see {@link PointOption} and {@link ElementOption}100     * @return this TouchAction, for chaining.101     */102    public T tap(PointOption tapOptions) {103        ActionParameter action = new ActionParameter("tap", tapOptions);104        parameterBuilder.add(action);105        return (T) this;106    }107    /**108     * A wait action, used as a NOP in multi-chaining.109     *110     * @return this TouchAction, for chaining.111     */112    public T waitAction() {113        ActionParameter action = new ActionParameter("wait");114        parameterBuilder.add(action);115        //noinspection unchecked116        return (T) this;117    }118    /**119     * Waits for specified amount of time to pass before continue to next touch action.120     *121     * @param waitOptions see {@link WaitOptions}.122     * @return this TouchAction, for chaining.123     */124    public T waitAction(WaitOptions waitOptions) {125        ActionParameter action = new ActionParameter("wait", waitOptions);126        parameterBuilder.add(action);127        //noinspection unchecked128        return (T) this;129    }130    /**131     * Press and hold the at the center of an element until the context menu event has fired.132     *133     * @param longPressOptions see {@link LongPressOptions}.134     * @return this TouchAction, for chaining.135     */136    public T longPress(LongPressOptions longPressOptions) {137        ActionParameter action = new ActionParameter("longPress", longPressOptions);138        parameterBuilder.add(action);139        //noinspection unchecked140        return (T) this;141    }142    /**143     * Press and hold the at the center of an element until the context menu event has fired.144     *145     * @param longPressOptions see {@link PointOption} and {@link ElementOption}.146     * @return this TouchAction, for chaining.147     */148    public T longPress(PointOption longPressOptions) {149        ActionParameter action = new ActionParameter("longPress", longPressOptions);150        parameterBuilder.add(action);151        //noinspection unchecked152        return (T) this;153    }154    /**155     * Cancel this action, if it was partially completed by the performsTouchActions.156     */157    public void cancel() {158        ActionParameter action = new ActionParameter("cancel");159        parameterBuilder.add(action);160        this.perform();161    }162    /**163     * Perform this chain of actions on the performsTouchActions.164     *165     * @return this TouchAction, for possible segmented-touches.166     */167    public T perform() {168        performsTouchActions.performTouchAction(this);169        //noinspection unchecked170        return (T) this;171    }172    /**173     * Get the mjsonwp parameters for this Action.174     *175     * @return A map of parameters for this touch action to pass as part of mjsonwp.176     */177    protected Map<String, List<Object>> getParameters() {178        List<ActionParameter> actionList = parameterBuilder.build();179        return ImmutableMap.of("actions", actionList.stream()180                .map(ActionParameter::getParameterMap).collect(toList()));181    }182    /**183     * Clears all the existing action parameters and resets the instance to the initial state.184     *185     * @return this TouchAction, for possible segmented-touches.186     */187    protected T clearParameters() {188        parameterBuilder = builder();189        //noinspection unchecked190        return (T) this;191    }192    /**193     * Just holds values to eventually return the parameters required for the mjsonwp.194     */195    protected class ActionParameter {196        private String actionName;197        private ImmutableMap.Builder<String, Object> optionsBuilder;198        public ActionParameter(String actionName) {199            this.actionName = actionName;200            optionsBuilder = ImmutableMap.builder();201        }202        public ActionParameter(String actionName, ActionOptions opts) {203            checkNotNull(opts);204            this.actionName = actionName;205            optionsBuilder = ImmutableMap.builder();206            //noinspection unchecked207            optionsBuilder.putAll(opts.build());208        }209        public ImmutableMap<String, Object> getParameterMap() {210            ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder();211            builder.put("action", actionName).put("options", optionsBuilder.build());212            return builder.build();213        }214    }215}...CommonPage.java
Source:CommonPage.java  
1package stolk.alecsandro.appium.core;2import io.appium.java_client.MobileElement;3import io.appium.java_client.TouchAction;4import io.appium.java_client.android.AndroidTouchAction;5import io.appium.java_client.touch.ActionOptions;6import io.appium.java_client.touch.LongPressOptions;7import io.appium.java_client.touch.TapOptions;8import io.appium.java_client.touch.WaitOptions;9import io.appium.java_client.touch.offset.ElementOption;10import io.appium.java_client.touch.offset.PointOption;11import org.openqa.selenium.By;12import org.openqa.selenium.Dimension;13import org.openqa.selenium.Point;14import org.openqa.selenium.WebElement;15import org.openqa.selenium.interactions.touch.TouchActions;16import java.time.Duration;17import java.util.List;18import static stolk.alecsandro.appium.core.DriverFactory.getDriver;19public class CommonPage {...checkUI.java
Source:checkUI.java  
...14import org.testng.annotations.AfterTest;15import io.appium.java_client.*;16import io.appium.java_client.android.AndroidElement;17import io.appium.java_client.android.AndroidTouchAction;18import io.appium.java_client.touch.ActionOptions;19import io.appium.java_client.touch.WaitOptions;20import io.appium.java_client.touch.offset.ElementOption;21import io.appium.java_client.touch.offset.PointOption;22public class checkUI {23	public setup app = new setup();24	public ArrayList<String> def_value = new ArrayList<String>(); // array save default value of unit test in GUI25	private Object executeScript;26	27	@BeforeTest28	public void beforeTest() throws MalformedURLException, InterruptedException {29		 app.start();30		// WebElement popup = app.driver.findElementByLinkText("I Agree");31		 WebElement recordButton = app.driver.findElementById("com.supereffect.voicechanger:id/recordButton");32		 recordButton.click();...RecordNameIsNull.java
Source:RecordNameIsNull.java  
...32import org.testng.annotations.AfterTest;33import io.appium.java_client.*;34import io.appium.java_client.android.AndroidDriver;35import io.appium.java_client.functions.ExpectedCondition;36import io.appium.java_client.touch.ActionOptions;37import io.appium.java_client.touch.WaitOptions;38import io.appium.java_client.touch.offset.ElementOption;39import io.appium.java_client.touch.offset.PointOption;40import net.sourceforge.tess4j.ITesseract;41import net.sourceforge.tess4j.Tesseract;42import net.sourceforge.tess4j.TesseractException;43import net.sourceforge.tess4j.util.LoadLibs;44public class RecordNameIsNull{45	public setup app = new setup();46	 static String scrShotDir = "screenshots";47	  File scrFile;48	  static File scrShotDirPath = new java.io.File("./"+ scrShotDir+ "//");49	  String destFile;50	...RecordNameIsEmpty.java
Source:RecordNameIsEmpty.java  
...29import io.appium.java_client.android.AndroidDriver;30import io.appium.java_client.android.AndroidElement;31import io.appium.java_client.android.AndroidTouchAction;32import io.appium.java_client.functions.ExpectedCondition;33import io.appium.java_client.touch.ActionOptions;34import io.appium.java_client.touch.WaitOptions;35import io.appium.java_client.touch.offset.ElementOption;36import io.appium.java_client.touch.offset.PointOption;37import net.sourceforge.tess4j.ITesseract;38import net.sourceforge.tess4j.Tesseract;39import net.sourceforge.tess4j.TesseractException;40import net.sourceforge.tess4j.util.LoadLibs;41public class RecordNameIsEmpty{42	public setup app = new setup();43	private WebDriverWait wait;44	@BeforeTest45	public void beforeTest() throws MalformedURLException, InterruptedException {46		app.start();47		// WebElement popup = app.driver.findElementByLinkText("I Agree");...PointOption.java
Source:PointOption.java  
1package io.appium.java_client.touch.offset;2import static java.util.Optional.ofNullable;3import io.appium.java_client.touch.ActionOptions;4import org.openqa.selenium.Point;5import java.util.Map;6public class PointOption<T extends PointOption<T>> extends ActionOptions<T> {7    protected Point coordinates;8    /**9     * It creates a built instance of {@link PointOption} which takes x and y coordinates.10     * This is offset from the upper left corner of the screen.11     *12     * @param offset is an offset value.13     * @return a built option14     */15    public static PointOption point(Point offset) {16        return new PointOption().withCoordinates(offset);17    }18    /**19     * It creates a built instance of {@link PointOption} which takes x and y coordinates.20     * This is offset from the upper left corner of the screen....AbstractOptionCombinedWithPosition.java
Source:AbstractOptionCombinedWithPosition.java  
1package io.appium.java_client.touch.offset;2import static java.util.Optional.ofNullable;3import io.appium.java_client.touch.ActionOptions;4import java.util.Map;5public abstract class AbstractOptionCombinedWithPosition<T extends AbstractOptionCombinedWithPosition<T>>6        extends ActionOptions<AbstractOptionCombinedWithPosition<T>> {7    private ActionOptions<?> positionOption;8    /**9     * Some actions may require coordinates. Invocation of this method10     * replaces the result of previous {@link #withElement(ElementOption)} invocation.11     *12     * @param positionOption required coordinates.     *13     * @return self-reference14     */15    public T withPosition(PointOption positionOption) {16        this.positionOption = positionOption;17        return (T) this;18    }19    /**20     * Most of touch action may use position which is relative to some element. In order to unify21     * this behaviour this method was added. Invocation of this method...ActionOptions
Using AI Code Generation
1TouchAction touchAction = new TouchAction(driver);2touchAction.press(PointOption.point(x,y)).waitAction(WaitOptions.waitOptions(Duration.ofSeconds(2))).moveTo(PointOption.point(x1,y1)).release().perform();3TouchAction touchAction = new TouchAction(driver);4touchAction.press(PointOption.point(x,y)).waitAction(WaitOptions.waitOptions(Duration.ofSeconds(2))).moveTo(PointOption.point(x1,y1)).release().perform();5TouchAction touchAction = new TouchAction(driver);6touchAction.press(PointOption.point(x,y)).waitAction(WaitOptions.waitOptions(Duration.ofSeconds(2))).moveTo(PointOption.point(x1,y1)).release().perform();7TouchAction touchAction = new TouchAction(driver);8touchAction.press(PointOption.point(x,y)).waitAction(WaitOptions.waitOptions(Duration.ofSeconds(2))).moveTo(PointOption.point(x1,y1)).release().perform();9TouchAction touchAction = new TouchAction(driver);10touchAction.press(PointOption.point(x,y)).waitAction(WaitOptions.waitOptions(Duration.ofSeconds(2))).moveTo(PointOption.point(x1,y1)).release().perform();11TouchAction touchAction = new TouchAction(driver);12touchAction.press(PointOption.point(x,y)).waitAction(WaitOptions.waitOptions(Duration.ofSeconds(2))).moveTo(PointOption.point(x1,y1)).release().perform();13TouchAction touchAction = new TouchAction(driver);14touchAction.press(PointOption.point(x,y)).waitAction(WaitOptions.waitOptions(Duration.ofSeconds(2))).moveTo(PointOption.point(x1,y1)).release().perform();15TouchAction touchAction = new TouchAction(driver);16touchAction.press(PointOptionActionOptions
Using AI Code Generation
1TouchAction action = new TouchAction(driver);2action.press(PointOption.point(300, 300))3    .waitAction(WaitOptions.waitOptions(Duration.ofSeconds(2)))4    .moveTo(PointOption.point(300, 700))5    .release()6    .perform();7await driver.touchAction([8  { action: 'press', options: { x: 300, y: 300 } },9  { action: 'wait', options: { ms: 2000 } },10  { action: 'moveTo', options: { x: 300, y: 700 } },11]);12action = TouchAction(self._driver)13action.press(x=300, y=300)14action.wait(ms=2000)15action.move_to(x=300, y=700)16action.release()17action.perform()18action.press(x: 300, y: 300)19action.wait(ms: 2000)20action.move_to(x: 300, y: 700)21action = new TouchAction(driver)22action.press(x=300, y=300)23action.wait(ms=2000)24action.move_to(x=300, y=700)25let action = TouchAction(driver)26action.press(x: 300, y: 300)27action.wait(ms: 2000)28action.moveTo(x: 300, y: 700)29action.release()30action.perform()31let action = new TouchAction(driver);32action.press({ x: 300, y: 300 });33action.wait({ ms: 2000 });34action.moveTo({ x: 300, y: 700 });35action.release();36action.perform();ActionOptions
Using AI Code Generation
1TouchAction action = new TouchAction(driver);2action.press(new ActionOptions().withElement(element(optionOne))).release().perform();3TouchAction action = new TouchAction(driver);4action.press(new TouchActionOptions().withElement(element(optionOne))).release().perform();5TouchAction action = new TouchAction(driver);6action.press(new ElementOption().withElement(element(optionOne))).release().perform();7TouchAction action = new TouchAction(driver);8action.press(new ElementOption().withElement(element(optionOne))).release().perform();9TouchAction action = new TouchAction(driver);10action.press(new PointOption().withCoordinates(100, 100)).release().perform();11TouchAction action = new TouchAction(driver);12action.press(new PointOption().withCoordinates(100, 100)).release().perform();13TouchAction action = new TouchAction(driver);14action.press(new PointOption().withCoordinates(100, 100)).release().perform();15TouchAction action = new TouchAction(driver);16action.press(new WaitOptions().withDuration(Duration.ofSeconds(5))).release().perform();17TouchAction action = new TouchAction(driver);18action.press(new WaitOptions().withDuration(Duration.ofSeconds(5))).release().perform();19TouchAction action = new TouchAction(driver);20action.press(new WaitOptions().withDuration(Duration.ofSeconds(5))).release().perform();21TouchAction action = new TouchAction(driver);22action.press(new TouchActionOptions().withElement(element(optionOne))).release().perform();23TouchAction action = new TouchAction(driver);24action.press(new TouchActionOptions().withElementActionOptions
Using AI Code Generation
1import io.appium.java_client.AppiumDriver;2import io.appium.java_client.MobileElement;3import io.appium.java_client.TouchAction;4import io.appium.java_client.touch.LongPressOptions;5import io.appium.java_client.touch.offset.ElementOption;6import java.net.URL;7import org.openqa.selenium.remote.DesiredCapabilities;8public class Appium {9public static void main(String[] args) throws MalformedURLException {10DesiredCapabilities cap = new DesiredCapabilities();11cap.setCapability("deviceName", "Redmi Note 8 Pro");12cap.setCapability("udid", "4c4b9b2f");13cap.setCapability("platformName", "Android");14cap.setCapability("platformVersion", "10");15cap.setCapability("appPackage", "com.google.android.calculator");16cap.setCapability("appActivity", "com.android.calculator2.Calculator");ActionOptions
Using AI Code Generation
1TouchAction touchAction = new TouchAction(driver);2touchAction.longPress(ElementOption.element(element)).perform();3WebElement element = driver.findElement(By.id("id"));4new Actions(driver).moveToElement(element).perform();5TouchAction touchAction = new TouchAction(driver);6touchAction.longPress(ElementOption.element(element)).release().perform();7WebElement element = driver.findElement(By.id("id"));8new Actions(driver).moveToElement(element).release().perform();9TouchAction touchAction = new TouchAction(driver);10touchAction.longPress(ElementOption.element(element), Duration.ofSeconds(5)).perform();11WebElement element = driver.findElement(By.id("id"));12new Actions(driver).moveToElement(element).pause(5000).perform();13TouchAction touchAction = new TouchAction(driver);14touchAction.longPress(ElementOption.element(element), Duration.ofSeconds(5)).release().perform();15WebElement element = driver.findElement(By.id("id"));16new Actions(driver).moveToElement(element).pause(5000).release().perform();17TouchAction touchAction = new TouchAction(driver);18touchAction.longPress(ElementOption.element(element), Duration.ofSeconds(10), PointOption.point(100, 100)).perform();19WebElement element = driver.findElement(By.id("id"));20new Actions(driver).moveToElement(element).pause(10000).moveByOffset(100, 100).perform();21TouchAction touchAction = new TouchAction(driver);22touchAction.longPress(ElementOption.element(element), Duration.ofSeconds(10), PointOption.point(100, 100)).release().perform();ActionOptions
Using AI Code Generation
1import io.appium.java_client.AppiumDriver;2import io.appium.java_client.MobileElement;3import io.appium.java_client.TouchAction;4import io.appium.java_client.android.AndroidDriver;5import io.appium.java_client.touch.offset.PointOption;6import java.net.MalformedURLException;7import java.net.URL;8import org.openqa.selenium.remote.DesiredCapabilities;9public class Appium {10    public static void main(String[] args) throws MalformedURLException, InterruptedException {11        DesiredCapabilities caps = new DesiredCapabilities();12        caps.setCapability("deviceName", "emulator-5554");13        caps.setCapability("platformName", "Android");14        caps.setCapability("platformVersion", "9.0");15        caps.setCapability("appPackage", "com.android.contacts");16        caps.setCapability("appActivity", "com.android.contacts.activities.PeopleActivity");17        caps.setCapability("noReset", "true");Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
