【发布时间】:2016-10-13 11:21:31
【问题描述】:
我有一个 UI 滑块组件。单击旋钮时,我可以左右拖动滑块。 我需要在移动设备上测试此功能。我正在使用使用 saucelabs 的 iOS 和 android 模拟器。
我尝试了以下代码:
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 :方法未实现。 在行: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")); org.openqa.selenium.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);
}
【问题讨论】:
-
第二个错误可能是因为你找不到元素
slider。您能否将代码调试到错误所在的行并检查slider = null -
所以我调试了我的代码。我发现浏览器在 action.longPress(xStart,yStart).moveTo(moveTo,yStart).perform(); 之后立即关闭因此,当我找到一个元素时,它不存在。碰巧知道为什么会这样吗? @JaysonP