0

我在 iOS 中使用 Appium 1.7.2 运行测试。我需要放大地图。我将地图元素放入 theMap 变量并尝试通过不同的方式进行缩放,但是它们都失败了:

方法一:

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 错误。

方法二:

Actions action = new Actions(driver);
        action.moveToElement(theMap);
        action.doubleClick(theMap);
        action.perform();

perform() 也会崩溃。

在这两种情况下,我都会得到 InvocationTargetException。任何建议将不胜感激。

4

1 回答 1

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 是父元素,包含地图及其上的所有项目。

于 2018-03-23T02:57:42.720 回答