x和y坐标如何点击iOS?
How tap by x and y coordinates iOS?
对于 Android 世界,我们可以通过以下方式点击任何位置:
val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
device.click(x, y)
上面的 x
和 y
可以从 Pixelmator 获得,例如:
例如a
键的坐标应该是x=100
和y=1800
(来自Pixelmator的Ruler)。
根据 ,我们可能会在 iOS:
中做类似的事情
func tapCoordinate(at xCoordinate: Double, and yCoordinate: Double) {
let normalized = app.coordinate(withNormalizedOffset: CGVector(dx: 0, dy: 0))
let coordinate = normalized.withOffset(CGVector(dx: xCoordinate, dy: yCoordinate))
coordinate.tap()
}
但是没有达到预期的效果,我想知道是否可以通过全局屏幕的x
和y
点击一些点?
你的问题没有多大意义。函数 debugDescription()
从各种数据类型生成一个字符串,适合记录到控制台。 iOS 不会“根据 debugDescription 计算坐标”。
你没有告诉我们你在记录什么。您应该编辑您的问题以告诉我们您正在记录的是什么,显示捕获值的代码,并显示记录它的打印语句。
根据输出格式,您似乎正在记录一个矩形(CGRect
数据类型。)
A CGRect
的形式是 (origin, size),其中 origin
是 CGPoint
,size 是 CGSize
.
听起来 tapCoordinate
给出了矩形的中心,即:
x = rect.origin.x + size.width/2
y = rect.origin.y + size.width/2
这给了
x = 23+41/2 = 43.5
y = 573+49/2 = 597.5
假设您的 x 值是一个错字,应该是 33,这与您在问题中给出的值非常接近。
对于 Android 世界,我们可以通过以下方式点击任何位置:
val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
device.click(x, y)
上面的 x
和 y
可以从 Pixelmator 获得,例如:
例如a
键的坐标应该是x=100
和y=1800
(来自Pixelmator的Ruler)。
根据
func tapCoordinate(at xCoordinate: Double, and yCoordinate: Double) {
let normalized = app.coordinate(withNormalizedOffset: CGVector(dx: 0, dy: 0))
let coordinate = normalized.withOffset(CGVector(dx: xCoordinate, dy: yCoordinate))
coordinate.tap()
}
但是没有达到预期的效果,我想知道是否可以通过全局屏幕的x
和y
点击一些点?
你的问题没有多大意义。函数 debugDescription()
从各种数据类型生成一个字符串,适合记录到控制台。 iOS 不会“根据 debugDescription 计算坐标”。
你没有告诉我们你在记录什么。您应该编辑您的问题以告诉我们您正在记录的是什么,显示捕获值的代码,并显示记录它的打印语句。
根据输出格式,您似乎正在记录一个矩形(CGRect
数据类型。)
A CGRect
的形式是 (origin, size),其中 origin
是 CGPoint
,size 是 CGSize
.
听起来 tapCoordinate
给出了矩形的中心,即:
x = rect.origin.x + size.width/2
y = rect.origin.y + size.width/2
这给了
x = 23+41/2 = 43.5
y = 573+49/2 = 597.5
假设您的 x 值是一个错字,应该是 33,这与您在问题中给出的值非常接近。