【问题标题】:appium test fails when trying to zoom map尝试缩放地图时appium测试失败
【发布时间】:2018-08-16 07:18:08
【问题描述】:

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

方法一:

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。任何建议将不胜感激。

【问题讨论】:

  • 你用的是什么版本的appium-java-client?
  • 您是否尝试过driver.zoom(theMap); 或带有x 和y 位置参数的相应缩放?您可能需要先点击元素,我没有尝试过。

标签: java ios appium appium-ios xcuitest


【解决方案1】:

我找到了另一种缩放方式。

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);
}

其中元素是父元素,包含地图及其上的所有项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-11
    • 2017-07-07
    • 2020-03-16
    • 2018-11-21
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    相关资源
    最近更新 更多