Appium& Java:如何执行快速单击操作?

时间:2018-04-02 07:56:57

标签: appium appium-android

我想对Android应用中的按钮执行10次快速点击操作(更喜欢0.5秒),但只需点击10次'间隙太长(约1.5秒间隙)。 想知道缩短Appium Java中每次点击之间差距的正确方法是什么? 提前谢谢你:)

 for(int i=1; i<11; i++){
     driver.findElement(By.id("btnA")).click();
 }

3 个答案:

答案 0 :(得分:0)

您可以查看TouchAction / MultiAction类,您可以在其中定义事件序列,然后立即执行: https://appium.io/docs/en/writing-running-appium/touch-actions/

在您的情况下,它可能看起来像这样(2次点击的例子)

MobileElement el = driver.findElement(By.id("btnA")) TouchAction action0 = new TouchAction(driver).tap(el) TouchAction action1 = new TouchAction(driver).tap(el) MultiAction(driver).add(action0).add(action1).perform()

希望你有这个想法

答案 1 :(得分:0)

在你的情况下,你每次都在for循环中找到元素,这会占用你注意到的额外时间。为了缩短你的时间,如果你找到一次元素并多次点击它就会更好。

E.g。

postgres

希望它有所帮助。

答案 2 :(得分:0)

  • 你的方法花了我 5882ms

  • Wasiq Bhamla方法带我 3622ms

  • dmle不起作用,因为这是同时点击,所以即使使用10个TouchAction,它也会点击一次。它的MultiTouchAction和tap(el)也已被弃用。

    使用10个独立水龙头的dmle概念:

    for (int i = 1; i < 11; i++) {
        new TouchAction(driver).tap(element).perform();
    }
    

    它花了我 6915ms

  • 使用.press(el).release()。按(el)...代码(也弃用):

    TouchAction action =new TouchAction(driver);
    for (int i = 1; i < 11; i++) {
        action.press(element).release();
    }
    action.perform();
    

    它花了我 25285ms WOW

所以Wasiq Bhamla方法赢了......我在Windows 10上使用appium 1.8.0 beta 3和java客户端6.0.0 beta 4。