我有一个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:未实现方法。 at 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")); 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);
}
答案 0 :(得分:0)
您可以使用滑动方法。
,而不是使用TouchActiondriver.swipe(startx, starty, endx, starty, 500);
答案 1 :(得分:0)
下面的代码对我有用,你可以尝试一下,touchShortcuts实际上是在这里做的。
((TouchShortcuts)驱动程序).swipe(startx,starty,endx,starty,500);