android - 如何使用appium for iOS在移动设备屏幕上进行圆形手势操作

标签 android ios selenium jquery-mobile appium

我正在尝试使用 appium 在移动设备屏幕上执行圆圈手势操作。我尝试使用 swipe()press("args").moveTo("args"),还尝试使用 javascript 执行程序方法。但无法在 iOS 的手机屏幕上执行圆圈手势操作。

在从第一点到最后一点执行这个 Action 的时候需要在中间不松手的情况下执行这个画圈手势操作。

有没有AutoIT or Sikuli之类的工具可以在移动设备上执行上述手势操作,并且可以在Mac中使用java在appium脚本中执行。

最佳答案

对于那些寻求快速解决方案的人,这里是我基于该线程中其他评论的实现:

public void SwipeArc(double centerX, double centerY, double radius, double startDegree, double degrees, int steps)
{
    //interpolate along the circumference of the circle
    double angle = degrees / steps;
    double prevX = centerX + radius * Math.Cos(startDegree * Math.PI / 180F); ;
    double prevY = centerY + radius * Math.Sin(startDegree * Math.PI / 180F);

    TouchAction circleTouch = new TouchAction(_Driver); //Your appium driver object here
    circleTouch.Press(prevX, prevY);

    for(int i = 1; i <= steps; ++i)
    {
        double newX = centerX + radius * Math.Cos((startDegree + angle * i) * Math.PI / 180F);
        double newY = centerY + radius * Math.Sin((startDegree + angle * i) * Math.PI / 180F);

        double difX = newX - prevX;
        double difY = newY - prevY;
        circleTouch.MoveTo(difX, difY);

        prevX = newX;
        prevY = newY;
    }

    circleTouch.Release();
    circleTouch.Perform();
}

此解决方案假定 Appium 服务器期望每个步骤的相对坐标,我不确定是否所有 Appium 服务器版本都是这种情况。

关于android - 如何使用appium for iOS在移动设备屏幕上进行圆形手势操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32174345/

相关文章:

java - Android 中的微调器颜色样式

android - 使用 arrayadapter Android 动态添加项目到 ListView

java - 无法解析为变量 - Parse.com

android - 如何使用appium在android中滚动 ListView ?

android - 由于Android 6.0监听PhoneStateListener.LISTEN_DATA_CONNECTION_STATE的变化似乎不再需要READ_PHONE_STATE权限

iphone - 如何在 iPhone 的 ImageView 中加载 url 图像

ios - CGRect 在 iOS 中与 Rect() 相交

ios - heightForRowAtIndexPath 无法正常工作

python - Selenium 属性错误: 'str' object has no attribute 'native_events_enabled'

java - Selenium 代码未从网页中提取方面数据