Automation of Settings app, iPhone

2019-03-31 23:16发布

I am trying UI Automation on iPhone for connecting to any given Wi-Fi network. I want to automate Settings app. It should automatically:

  1. open Settings app;
  2. turn on Wi-Fi;
  3. connect to given network by providing SSID and WPA.

My questions are:

  1. Is it possible to automate any inbuilt app using UI Automation? Does the Apple/iOS security model preclude any such access to inbuilt apps?
  2. If it is possible, how to achieve this?

2条回答
爷、活的狠高调
2楼-- · 2019-03-31 23:50

I know I'm late to the party, but I'd like to provide a more complete answer and elaborate on my solution.

I run my uiautomation from shell scripts, here's my solution..

(You'll have to remove spaces etc)

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);

So you could have several shell scripts, firstly one to set the language, then another to do screen shots, then run another switch to another language etc..

:)

查看更多
干净又极端
3楼-- · 2019-03-31 23:52

Yes, it is possible and easy to do. Select the "Preferences.app" (Settings) as your target and write a script for the rest. The "Preferences.app" is located inside your Xcode app

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

查看更多
登录 后发表回答