为什么Appium方法driver.manage()。window()。getSize()返回的大小与屏幕像素不同?

时间:2019-02-17 01:44:02

标签: appium

iPhone X和XS的实际屏幕分辨率为1125x2436

但是当我执行driver.manage().window().getSize()时,我得到的响应是375x812。恰好是实际屏幕尺寸的1/3

这里变得更加复杂。对于我在iOS 11.2上的iPhone X和iOS 12.1上的iPhone XS上进行的测试,通过TouchAction敲击X,Y坐标的工作原理不同

在某些情况下,第一个需要以像素为单位的实际屏幕大小的坐标。在其他情况下,他们需要我将真实坐标除以3才能将水龙头放到我想要的位置。我是通过反复试验发现的。

但是在iPhone XS上,您始终需要发送坐标除以3。

无论如何,我都可以进行测试,但是现在我想知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

Appium返回视口的大小。对于iPhone X,它是375 x 812

Appium正在使用appium-xcuitest-driver进行iOS自动化,如果您检查其代码,则会发现the exact values

const IPHONE_X_WIDTH = 375;
const IPHONE_X_HEIGHT = 812;

这些更改是在this PR中引入的,这些更改增加了Appium对iPhone X的支持。基本上,视口值被Appium用来验证设备是X还是其他型号。

screenshot个端点状态的文档:

Takes a screenshot of the viewport in a native context (iOS, Android)

由于屏幕截图正在使用/window/size调用,因此可以清楚地看到Appium将返回视口,这不是错误。