有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用Appium在iOS中刷卡

我正在尝试使用Appium和java在iOS中浏览模式视图

我尝试过两种方法,但都没有成功:

JavascriptExecutor js2 = (JavascriptExecutor) driver;

 HashMap<String, String> scrollObject2 = new HashMap<String, String>();
 scrollObject2.put("x", "200");
 scrollObject2.put("y", "550");
 scrollObject2.put("direction", "down");
 js2.executeScript("mobile: swipe", scrollObject2);

 TouchAction action = new TouchAction(driver);
 action.press(PointOption.point(200, 550)).moveTo(PointOption.point(200, 700)).release().perform();

我做错了什么?实现这一目标的另一个正确方法是什么

谢谢


共 (2) 个答案

  1. # 1 楼答案

    您应该使用js脚本执行器来执行

    不需要像您那样添加坐标,只需尝试以下操作:

    HashMap<String, String> scrollObject = new HashMap<>();
    JavascriptExecutor js = driver; 
    scrollObject.put("direction", "down");
    js.executeScript("mobile: scroll", scrollObject); //or "mobile: swipe"
    
  2. # 2 楼答案

    public static void fingerSwipe(int startX, int startY, int endX, int endY, long timeInMillis){
    PointerInput touchAction = new PointerInput(PointerInput.Kind.TOUCH, "touchAction");
    Interaction moveToStart = touchAction.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(), startX, startY);
    Interaction pressDown = touchAction.createPointerDown(PointerInput.MouseButton.LEFT.asArg());
    Interaction moveToEnd = touchAction.createPointerMove(Duration.ofMillis(timeInMillis), PointerInput.Origin.viewport(), endX, endY);
    Interaction pressUp = touchAction.createPointerUp(PointerInput.MouseButton.LEFT.asArg());
    
    Sequence swipe = new Sequence(touchAction, 0);
    swipe.addAction(moveToStart);
    swipe.addAction(pressDown);
    swipe.addAction(moveToEnd);
    swipe.addAction(pressUp);
    
    driver.perform(Arrays.asList(swipe));
    

    }

    我使用selenium交互包使用JAVA和appium执行刷卡。尝试在WebDriverIo中为Appium版本-1.15.0及以上版本使用类似于上述代码的代码。您只需要根据要执行的滑动来传递输入参数

    “long timeInMillis”是刷卡的时间段