自动化设置应用程序,iPhone

时间:2013-05-14 10:51:08

标签: ios automation ui-automation ios-ui-automation

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

  1. 打开“设置应用”;
  2. 开启Wi-Fi;
  3. 通过提供 SSID WPA 连接到指定的网络。
  4. 我的问题是:

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

2 个答案:

答案 0 :(得分:4)

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

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

(你必须删除空格等)

settingsapp.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

settingapp.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脚本,首先是一个设置语言,然后是另一个做屏幕截图,然后再运行另一个语言等等。

:)

答案 1 :(得分:2)

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

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