我在iOS中使用Appium 1.7.2运行测试。我需要放大地图。我将map元素放入Map变量并尝试以不同的方式缩放,但是所有这些都失败了:
方法1:
TouchAction action1 = new TouchAction(driver).press(100,100).moveTo(0,-50).release();
TouchAction acction2 = new TouchAction(driver).press(100,200).moveTo(0,50).release();
MultiTouchAction mta = new MultiTouchAction(driver);
mta.add(action1).add(acction2);
mta.perform();
perform()方法崩溃。如果我删除其中一个操作并保持
mta.add(action1);
mta.perform();
或者
mta.add(action2);
mta.perform();
没有问题和行动。
Appium服务器从WDA获得501错误。
方法2:
Actions action = new Actions(driver);
action.moveToElement(theMap);
action.doubleClick(theMap);
action.perform();
在perform()上崩溃。
在这两种情况下,我都会收到InvocationTargetException。任何建议将不胜感激。
答案 0 :(得分:0)
我找到了缩放的替代方法。
public void zoom(RemoteWebElement element){
JavascriptExecutor js = (JavascriptExecutor) driver;
Map<String, Object> params = new HashMap<>();
params.put("scale", 10);
params.put("velocity", 2);
params.put("element", ((RemoteWebElement) element).getId());
js.executeScript("mobile: pinch", params);
}
其中element是父元素,包含map及其上的所有项目。