ios - UIAutomation 在 iOS 6 中工作,但在 iOS 7 中不起作用 (UIATarget.setLocationWithOptions)

标签 ios xcode ios7 ios-ui-automation

我尝试为基于位置的应用程序编写 UIAutomation 测试。这是我的代码:

var target = UIATarget.localTarget();
var mainWindow = target.frontMostApp().mainWindow();  

// speed is in meters/sec 
var points = [
    {"location":{"latitude":46.783959176435,"longitude":23.542576152853}, "options":{"speed":32.33869934082}},
    {"location":{"latitude":46.784235069873,"longitude":23.542993452429}, "options":{"speed":33.44660949707}},
    {"location":{"latitude":46.784323173489,"longitude":23.543161503691}, "options":{"speed":33.76908493042}},
    {"location":{"latitude":46.784514430638,"longitude":23.54344429169}, "options":{"speed":34.434867858887}},
    {"location":{"latitude":46.784609053263,"longitude":23.543600872392}, "options":{"speed":34.673755645752}},
    {"location":{"latitude":46.784701914083,"longitude":23.54376055256}, "options":{"speed":34.920608520508}},
    {"location":{"latitude":46.784792299278,"longitude":23.543917345257}, "options":{"speed":34.939456939697}},
    {"location":{"latitude":46.784869569202,"longitude":23.54409146343}, "options":{"speed":34.837844848633}},
    {"location":{"latitude":46.784959115698,"longitude":23.544272081608}, "options":{"speed":34.80908203125}},
    {"location":{"latitude":46.785085476228,"longitude":23.544603009802}, "options":{"speed":34.722270965576}},
    {"location":{"latitude":46.785085476228,"longitude":23.544603009802}, "options":{"speed":0.0}}
];

var driveDetectionStarted;
for (var i = 0; i < points.length; i++){
    target.setLocationWithOptions(points[i].location,points[i].options); // send location update
    target.delay(0.2); // sleep until next location update
}

target.delay(1);
if (mainWindow.staticTexts()[0].value() == "Updates Received") {
    driveDetectionStarted = true;
}
if (driveDetectionStarted) {
    UIALogger.logPass("Location updates received as expected.");
} else {
    UIALogger.logFail("Location updates logic failed.");
}

应用程序必须接收位置更新,如果一切正常,它将显示一个带有“已接收更新”文本的 UILabel。该测试在 iOS 6 上运行,但我在 iOS 7 上没有收到位置更新。我在设备上进行了尝试,因为 target.delay(x) 方法在具有新 xcode 的模拟器中不起作用。 (我已经测试过,它可以在旧的 xcode 版本中运行。)

有人可以帮我在 iOS 7 上运行测试吗?有人面临同样的问题吗? (我计划编写更复杂的测试,但如果我没有收到位置更新,那么我就无法继续前进。)

最佳答案

我这里也遇到同样的问题。 setLocation() 和 setLocationWithOptions() 方法在 iOS 7 上不起作用。在文档中,UIATarget 的所有方法(在 iOS 7 之前可用)均丢失,并且修订历史记录中没有这些更改的条目。

关于ios - UIAutomation 在 iOS 6 中工作,但在 iOS 7 中不起作用 (UIATarget.setLocationWithOptions),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19115497/

相关文章:

ios - UIImage 在将其转换为 CIImage、然后转换为 CGImage 并返回 UIImage 时失去其方向

ios - 在 iOS 中旋转一端固定的 ImageView

ios - Xcode 6.4 中弃用的 segues

uiSearchDisplayController 防止 tableview 改变背景颜色(背景保持灰色)

objective-c - iOS7 Sprite Kit如何将交互式Sprite Nodes和交互式UIViews结合起来?

ios - 如何在 Sprite Kit、Objective C 中用手指移动来击打物体

ios - 分割 View Controller 序列和连接

iphone - 未启用用户密码锁时,如何使用 iOS 磁盘加密保护数据?

ios - 在 iOS 应用中添加 revmob 广告时出现构建错误

IOS 潜在泄漏对象消息