我正在尝试使用 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/