查看 iOS 模拟器上发生触摸的位置

Bil*_*l L 4 iphone ios ios-simulator calabash

我正在使用 Calabash 为我的应用程序进行一些自动化 UI 测试,并且我正在尝试触摸一些嵌入在较大视图中的视图,因此我无法访问它们的确切名称以直接触摸它们。

所以我试图使用它们嵌入的视图的相对中心来触摸它们,但是,我只是盲目地调整我的偏移量来尝试点击这些视图而不知道我是否离视图更远或更近.

所以,我的问题是,有没有办法显示在 iOS 模拟器中发生触摸的位置?我在想像一个点或某种方式来表明发生了触摸以及它发生的位置。

任何帮助表示赞赏,谢谢!

Sat*_*ala 8

defaults write com.apple.iphonesimulator ShowSingleTouches 1

在终端中执行此命令并重新启动模拟器

  • 您可以使用“defaults write com.apple.iphonesimulator ShowSingleTouches 0”撤消此操作 (2认同)

jmo*_*ody 0

听起来好像没有嵌入视图,而只是响应不同位置的触摸的单个视图。

Calabash 查询语言可以查找嵌入在其他视图中的视图。

除了可视化触摸之外,您还可以尝试记录触摸发生的位置。Briar iOS 示例应用程序提供了如何执行此操作的示例。 要点是创建一个 UIWindow 子类,添加一个方法来拦截sendEvent:选择器,记录触摸点,然后调用 UIWindow 的sendEvent:.

您可以在 Xcode 的设备窗口 (Shift+Command+2) 或使用 ideviceinstaller 查看设备日志:

$ idevicesyslog -u < udid >
Run Code Online (Sandbox Code Playgroud)

您可以使用 run-loop 来跟踪模拟器的日志。

# Simulator must be launched.  App does not have to be running.
$ run-loop simctl tail
Run Code Online (Sandbox Code Playgroud)