iPhone X和XS的真实屏幕分辨率是1125x2436
。
但是,当我执行driver.manage().window().getSize()
时,我得到了响应375x812
。这正是真正的屏幕尺寸的1/3
。
而且这里变得更加复杂。通过TouchAction
点击X,Y坐标对我在iOS 11.2上的iPhone X和iOS 12.1上的iPhone XS上的测试有不同的作用
在某些情况下,第一个需要以像素为单位的实际屏幕尺寸的坐标。在其他人中,他们需要我将实际坐标除以3,以便在我想要的地方获得水龙头。我通过反复试验发现了这一点。
但是在iPhone XS上,你总是需要发送坐标除以3。
无论如何,我可以让我的测试工作,但现在我想知道为什么会这样?
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中引入的,它为iPhone X添加了Appium支持。基本上,Appium使用视口值来验证设备是X还是其他模型。
screenshot终点状态的文档:
Takes a screenshot of the viewport in a native context (iOS, Android)
由于截图是使用/window/size
调用,因此可以清楚地看到Appium返回视口,它不是一个bug。