appium-xcuitest-driver
Version:
Appium driver for iOS using XCUITest for backend
41 lines • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mobileGetBatteryInfo = mobileGetBatteryInfo;
const utils_1 = require("../utils");
/**
* Reads the battery information from the device under test.
*
* This endpoint only returns reliable result on real devices.
*
* @returns Battery information with advanced details
*/
async function mobileGetBatteryInfo() {
let batteryInfoFromShimService;
if ((0, utils_1.isIos18OrNewer)(this.opts) && this.isRealDevice()) {
let remoteXPCConnection;
try {
const { Services } = await import('appium-ios-remotexpc');
const { diagnosticsService, remoteXPC } = await Services.startDiagnosticsService(this.device.udid);
remoteXPCConnection = remoteXPC;
batteryInfoFromShimService = await diagnosticsService.ioregistry({
ioClass: 'IOPMPowerSource',
returnRawJson: true,
});
}
catch (err) {
this.log.error(`Failed to get battery info from DiagnosticsService: ${err.message}`);
}
finally {
if (remoteXPCConnection) {
this.log.info(`Closing remoteXPC connection for device ${this.device.udid}`);
await remoteXPCConnection.close();
}
}
}
const batteryInfoFromWda = await this.proxyCommand('/wda/batteryInfo', 'GET');
return {
...batteryInfoFromWda,
advanced: batteryInfoFromShimService || {},
};
}
//# sourceMappingURL=battery.js.map