如何在Xcode iOS UI测试中强制应用为浅色或深色界面风格?
iOS UI测试强制切换深色/浅色模式的方法
完全可以实现,iOS上有专门的启动参数来替代macOS的-AppleInterfaceStyle,具体操作如下:
- 替换启动参数为iOS专用的
-UITraitCollectionUserInterfaceStyle,代码示例:
var app = XCUIApplication() // 强制深色模式 app.launchArguments += ["-UITraitCollectionUserInterfaceStyle", "Dark"] // 强制浅色模式就换成 "Light" // app.launchArguments += ["-UITraitCollectionUserInterfaceStyle", "Light"] app.launch()
这个参数适用于iOS 13及以上版本(深色模式从iOS13开始支持),启动后应用会直接以指定的界面风格运行,无需修改UIScreen.main.traitCollection这个只读属性。
如果需要在测试运行过程中动态切换界面风格,可以通过在被测应用中暴露一个内部接口(比如通过URL Scheme或测试专用方法),让UI测试调用该接口来切换UIWindow的overrideUserInterfaceStyle属性,不过这种方式需要在应用代码中做少量适配。
内容的提问来源于stack exchange,提问作者Nickkk
相关产品推荐
相关产品推荐

