如何确保tap功能在适用于android应用的appium中起作用?

时间:2019-04-04 18:24:08

标签: java appium

我试图在第一个屏幕上点击一个元素[例如,一个名为Views的元素],然后单击它,将打开一个新屏幕,在那里我想点击一个名为[Expandable Lists]的元素。

因此,在第二次尝试中,我想对我使用Tap功能。 Tap()功能不起作用,而使用 .click()则水龙头起作用。请查看直到这一步为止我编写的代码:

import java.net.MalformedURLException;
import java.time.Duration;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.touch.TouchActions;
import org.openqa.selenium.interactions.touch.TouchActions.*;
import io.appium.java_client.TouchAction;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import static io.appium.java_client.touch.TapOptions.tapOptions;
import static io.appium.java_client.touch.offset.ElementOption.element;
import static io.appium.java_client.touch.WaitOptions.waitOptions;

public class Gestures extends Parent {

 public static void main(String[] args) throws MalformedURLException {
   // TODO Auto-generated method stub

   AndroidDriver<AndroidElement> driver = Capabilities();

    driver.findElementByXPath("//android.widget.TextView[@text= 'Views']").click();

    TouchActions t = new TouchActions(driver);
    WebElement expandList= driver.findElementByXPath("//android.widget.TextView[@text='Expandable Lists']");
    //t.tap(tapOptions().withElement(element(webElement)));
    // for element we need to import it's library just like we did 
    //for         the WebElement

    t.singleTap(expandList);
    t.perform(); 


    TouchAction(driver).tap(tapOptions()
    .withElement(element(expandList)))
    .waitAction(waitOptions(Duration.ofMillis(250))).perform();

    }

}

1 个答案:

答案 0 :(得分:0)

您可以使用 click()代替 tap()

  

要确保click()正常运行,可以检查单击按钮后是否出现预期的屏幕。