长按Appium中的AndroidElement

时间:2015-08-11 09:11:48

标签: testing automation appium

我试图在Appium中对AndroidElement执行长按操作。我发现我需要在这个元素上执行一个TouchAction,但是......它只需要作为参数WebDriver,而不是我使用的AndroidDriver。因此,它不起作用。

    TouchAction action = new TouchAction(AndroidDriver);
    action.longPress(element, 10000);

我有一段时间寻找答案。 LongPress(或类似的东西)用于我现在正在写的最后一次测试。

3 个答案:

答案 0 :(得分:0)

解决方法可能是使用io.appium.java_client.MultiTouchAction

MultiTouchAction multiTouch = new MultiTouchAction(AndroidDriver);
multiTouch.add(createTap(element, duration));
multiTouch.perform();

答案 1 :(得分:0)

试试这个。

TouchAction action = new TouchAction();
action.longPress(webElement).release().perform();

答案 2 :(得分:0)

下面的代码将在Android应用中执行特定时间段的单击和长按

利用它

package com.prac.com;

import java.net.MalformedURLException;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.WebElement;

import io.appium.java_client.TouchAction;
import static io.appium.java_client.touch.TapOptions.tapOptions;
import static io.appium.java_client.touch.LongPressOptions.longPressOptions;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import static java.time.Duration.ofSeconds;
import static io.appium.java_client.touch.offset.ElementOption.element;


    public class UdmeyCode extends Demo4TestBase {

        public static void main(String[] args) throws MalformedURLException {
            // TODO Auto-generated method stub
            AndroidDriver<AndroidElement> driver=Capabilities();
            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
            driver.findElementByXPath("//android.widget.TextView[@text='Views']").click();
            //Tap
            TouchAction t =new TouchAction(driver);
            WebElement expandList=  driver.findElementByXPath("//android.widget.TextView[@text='Expandable Lists']");
            t.tap(tapOptions().withElement(element(expandList))).perform();
            driver.findElementByXPath("//android.widget.TextView[@text='1. Custom Adapter']").click();
        WebElement pn=  driver.findElementByXPath("//android.widget.TextView[@text='People Names']");

            t.longPress(longPressOptions().withElement(element(pn)).withDuration(ofSeconds(2))).release().perform();
            //Thread.sleep(2000);
            System.out.println(driver.findElementById("android:id/title").isDisplayed());







        }

    }