3

我正在 iPhone 上尝试 UI 自动化以连接到任何给定的 Wi-Fi 网络。我想自动化设置应用程序。它应该自动:

  1. 打开设置应用程序;
  2. 打开无线网络;
  3. 通过提供SSIDWPA连接到给定的网络。

我的问题是:

  1. 是否可以使用 UI 自动化自动化任何内置应用程序?Apple/iOS 安全模型是否排除了对内置应用程序的任何此类访问?
  2. 如果可能,如何实现这一目标?
4

2 回答 2

4

我知道我迟到了,但我想提供更完整的答案并详细说明我的解决方案。

我从 shell 脚本运行我的 uiautomation,这是我的解决方案..

(您必须删除空格等)

设置应用程序.sh

#!/bin/bash
sleep 5s
instruments -v -w MY_SIMULATOR_DEVICE_ID -t
/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/
PlugIns/AutomationInstrument.xrplugin/Contents/Resources/
Automation.tracetemplate /Applications/Xcode.app/Contents/Developer/
Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/
Applications/Preferences.app -e UIASCRIPT 
/Users/ path to my js file/settingapp.js

设置app.js

var target = UIATarget.localTarget();
target.delay(1.0);
target.frontMostApp().mainWindow().tableViews()[0].cells()
  ["General"].tap();

target.delay(1.0);
target.frontMostApp().mainWindow().tableViews()[0].cells()
  ["Language & Region"].tap();

target.delay(1.0);
target.frontMostApp().mainWindow().tableViews()[0].cells()
  ["Region"].tap();

target.delay(1.0);
target.frontMostApp().mainWindow().tableViews()[0].cells()
  ["United Kingdom"].tap();

target.delay(1.0);

所以你可以有几个shell脚本,第一个设置语言,然后另一个做屏幕截图,然后运行另一个切换到另一种语言等。

:)

于 2015-04-28T18:24:13.350 回答
2

是的,这是可能的,而且很容易做到。选择“Preferences.app”(设置)作为您的目标,并为其余部分编写脚本。“Preferences.app”位于您的 Xcode 应用程序中

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs//Applications/Preferences.app

于 2013-05-24T21:39:39.340 回答