在UIAutomation中获取设备方向

tec*_*man 0 orientation device-orientation ios ios-ui-automation

我正在为我的程序编写自动化测试,并希望自动化设备方向......我使用下面的代码来设置设备的方向,

UIATarget.localTarget().setDeviceOrientation(UIA_DEVICE_ORIENTATION_LANDSCAPERIGHT);
Run Code Online (Sandbox Code Playgroud)

但我也希望获得该设备的当前方向.我找不到任何getDeviceOrientation()方法来获取方向.

hwa*_*xer 5

你有没有尝试过:

var orientation = UIATarget.localTarget().deviceOrientation()
Run Code Online (Sandbox Code Playgroud)

文档:

deviceOrientation

讨论

返回值是一个常量,表示设备的物理方向,可能与应用程序用户界面的当前方向不同.可能的值如下:

UIA_DEVICE_ORIENTATION_UNKNOWN
UIA_DEVICE_ORIENTATION_PORTRAIT
UIA_DEVICE_ORIENTATION_PORTRAIT_UPSIDEDOWN
UIA_DEVICE_ORIENTATION_LANDSCAPELEFT
UIA_DEVICE_ORIENTATION_LANDSCAPERIGHT
UIA_DEVICE_ORIENTATION_FACEUP
UIA_DEVICE_ORIENTATION_FACEDOWN
Run Code Online (Sandbox Code Playgroud)

编辑

设备方向可能在模拟器上不可用.最好interfaceOrientation()UIAApplication对象上使用它.

var target = UIATarget.localTarget();
var app = target.frontMostApp();
var orientation = app.interfaceOrientation();

if (orientation == UIA_INTERFACE_ORIENTATION_PORTRAIT || orientation == UIA_INTERFACE_ORIENTATION_PORTRAIT_UPSIDEDOWN) {
    UIALogger.logDebug("Portrait");
} else if (orientation == UIA_INTERFACE_ORIENTATION_LANDSCAPELEFT || orientation == UIA_INTERFACE_ORIENTATION_LANDSCAPERIGHT) {
    UIALogger.logDebug("Landscape");    
}
Run Code Online (Sandbox Code Playgroud)

这个指南非常好.