TouchAction方法在我的手机测试中不起作用



我有一个UI滑块组件。在点击旋钮时,我可以左右拖动滑块。我需要在手机上测试这个功能。我正在使用iOS和android模拟器使用saucelabs。

我尝试了下面的代码:

    slider = appium.findElement(By.id("numInput"));
    int xStart = slider.getLocation().getX();
    int yStart = slider.getLocation().getY();
    int end= xStart + slider.getSize().getWidth();
    System.out.println(slider.getAttribute("aria-valuenow"));
    TouchAction action = new TouchAction(appium);
    int moveTo=(int)(end*0.1);
    action.longPress(xStart,yStart).moveTo(moveTo,yStart).perform();
    System.out.println(slider.getAttribute("aria-valuenow"));

但是遇到一个错误:org.openqa.selenium.WebDriverException:方法未实现。在line: action.longPress(xStart,yStart).moveTo(moveTo,yStart).perform();

然后我做了一些研究,发现我需要切换到Native_App来让它工作

但是当我切换到Native App:

    slider = appium.findElement(By.id("numInput"));
    int xStart = slider.getLocation().getX();
    int yStart = slider.getLocation().getY();
    int end= xStart + slider.getSize().getWidth();
    System.out.println(slider.getAttribute("aria-valuenow"));//slider val
    String originalContext = appium.getContext();
    appium.context("NATIVE_APP");
    TouchAction action = new TouchAction(appium);
    int moveTo=(int)(end*0.1);
    action.longPress(xStart,yStart).moveTo(moveTo,yStart).perform();
    System.out.println(slider.getAttribute("aria-valuenow"));

另一个错误:System.out.println(slider.getAttribute("aria-valuenow"));nosuchelementexception:使用给定的搜索参数无法在页面上找到元素。

滑动条也不移动

功能:

    caps.setCapability(MobileCapabilityType.DEVICE_NAME,iPhone 6 Plus Simulator);
    caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, 9.3);
    caps.setCapability(MobileCapabilityType.BROWSER_NAME,Safari);
    caps.setCapability(MobileCapabilityType.APPIUM_VERSION, 1.5.3)
    if (appiumDriver.equalsIgnoreCase("iOS")) {
                appium = new IOSDriver(new URL(URL), caps);
     } else if (appiumDriver.equalsIgnoreCase("android")) {
                appium = new AndroidDriver(new URL(URL), caps);
     }

可以使用swipe方法代替TouchAction。

driver.swipe(startx, starty, endx, starty, 500);

下面的代码是为我工作,你可以给它一个尝试,触摸快捷键实际上做魔术在这里

((TouchShortcuts)驱动程序)。

最新更新