diff --git a/lib/appium-driver.ts b/lib/appium-driver.ts index 91f4fe7..6669280 100644 --- a/lib/appium-driver.ts +++ b/lib/appium-driver.ts @@ -272,7 +272,7 @@ export class AppiumDriver { logInfo("Current version of appium doesn't support appium settings!"); } - await DeviceManager.applyDeviceAdditionsSettings(driver, args, appiumCapsFromConfig); + await DeviceManager.applyDeviceAdditionsSettings(driver, args, sessionInfoDetails); hasStarted = true; } catch (error) { diff --git a/lib/device-manager.ts b/lib/device-manager.ts index 63d3105..251766d 100644 --- a/lib/device-manager.ts +++ b/lib/device-manager.ts @@ -202,7 +202,7 @@ export class DeviceManager implements IDeviceManager { args.device.config = { "density": args.device.deviceScreenDensity || args.device.config.density, "offsetPixels": +sessionInfoDetails.statBarHeight || args.device.config.offsetPixels }; } else { args.device.apiLevel = sessionInfoDetails.platformVersion; - args.device.deviceScreenDensity = sessionInfoDetails.pixelRatio; + args.device.deviceScreenDensity = sessionInfoDetails.pixelRatio || args.device.config.density; const offsetPixels = +sessionInfoDetails.viewportRect.top - +sessionInfoDetails.statBarHeight; args.device.config = { "density": sessionInfoDetails.pixelRatio || args.device.config.density, "offsetPixels": isNumber(offsetPixels) ? offsetPixels : args.device.config.offsetPixels }; } @@ -272,11 +272,11 @@ export class DeviceManager implements IDeviceManager { // } public static async applyDeviceAdditionsSettings(driver, args: INsCapabilities, sessionInfo: any) { - if ((!args.device.viewportRect || !args.device.viewportRect.x) && (!args.device.config || !args.device.config.offsetPixels)) { + if ((!args.device.viewportRect || !args.device.viewportRect.x) && (!args.device.config || !isNumber(args.device.config.offsetPixels))) { args.device.config = {}; let density: number; - if (sessionInfo && sessionInfo.length >= 1) { - density = sessionInfo[1].deviceScreenDensity ? sessionInfo[1].deviceScreenDensity / 100 : undefined; + if (sessionInfo && Object.getOwnPropertyNames(sessionInfo).length >= 1) { + density = sessionInfo.pixelRatio ? sessionInfo.pixelRatio : undefined; } if (density) { diff --git a/lib/ui-element.ts b/lib/ui-element.ts index 3f89674..0ae8c62 100644 --- a/lib/ui-element.ts +++ b/lib/ui-element.ts @@ -242,7 +242,7 @@ export class UIElement { */ public async getActualRectangle() { const actRect = await this.getRectangle(); - const density = this._args.device.config.density; + const density = this._args.device.deviceScreenDensity; if (this._args.isIOS) { if (density) { actRect.x *= density;