代码之家  ›  专栏  ›  技术社区  ›  Aryak Sengupta

刷卡功能在本地工作,但在设备场上失败

  •  0
  • Aryak Sengupta  · 技术社区  · 8 年前

    我正在尝试为iOS应用程序运行一个简单的滑动功能。我正在使用的滑动功能是这样的:

     public static void swipe (AppiumDriver<?> driver, WebElement element, String direction ) throws Exception {
        int startX = element.getLocation().getX();
        int startY = element.getLocation().getY();
        int endX = element.getLocation().getX();
        int endY=element.getLocation().getY();
    
        switch (direction){
        case  "left":
            System.out.println(startX);
            startX += element.getSize().getWidth();
            endX = -(element.getSize().getWidth());
            break;
        case "right":
            startX = 0;
            endX +=element.getSize().getWidth();
            break;
        case "up":
            startY += element.getSize().getHeight();
            endY =  -element.getSize().getHeight();
            break;
        case "down":
            endY += driver.manage().window().getSize().getHeight();
            break;
        default:
            throw new Exception("invalid direction, must be left/right/up/down");
        }
        //driver.swipe(startX, startY, endX, endY, 1000);
     new TouchAction(driver).press(startX, startY).waitAction(1000).moveTo(endX, 
           endY).release().perform();
        System.out.println(startX +" " + startY+ " " + endX+ " " +endY);
    
    }
    

    "platformName": "iOS"
    "platformVersion": "10.3"
    "automationName": "Appium"
    "deviceName": "iPhone 7"
    

    我在本地尝试了相同的预期功能,并且在模拟器上运行良好。我正在同一台设备上运行它(我在设备场中)。

    我也在使用 本地和设备场。

    1 回复  |  直到 8 年前
        1
  •  2
  •   jmp    8 年前

    不要为设备场设置所需的功能。它不会使用它们,并且在这样做时会发生预期的事情。

    https://github.com/awslabs/aws-device-farm-appium-tests-for-sample-app/blob/master/src/test/java/Tests/AbstractBaseTests/TestBase.java#L60

    试着不要设置它们,看看这是否有帮助。让我知道会发生什么。

    詹姆斯