如何在 UITesting swift 4 iOS 中获取应用程序名称
Posted
技术标签:
【中文标题】如何在 UITesting swift 4 iOS 中获取应用程序名称【英文标题】:How to get App name in UITesting swift 4 iOS 【发布时间】:2018-03-27 12:26:23 【问题描述】:我试图在 UITesting 中获取我的应用名称。我尝试了以下代码:
let appName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as! String
但它给了我 nil 值的结果。
【问题讨论】:
您是否从您的APP的项目设置中设置了DisplayName?? 【参考方案1】:当我试图找出“debugDescription”是否提供有关实际应用(而不是测试应用)的任何信息时,我偶然发现了一个看起来与应用显示名称完全相同的标签。
我不知道它是否对你有帮助,但以下简单的代码行帮助了我:
XCUIApplication().label
【讨论】:
不幸的是,它只有在您的应用程序正在运行时才有效,不是吗? @FlavioBittencourt 是的。但是,如果您将该名称存储在 let 常量中,然后终止应用程序,然后使用该名称就可以了【参考方案2】:您确定在 Info.plist 文件中设置了显示名称吗? 只需在项目设置或 Info.plist 中设置此名称即可:
【讨论】:
是的。已经在 Xcode 的 UITest 的 info.plist 中添加了这个。但它不起作用。 您应该将此添加到您的主要应用目标的 Info.plist 中,而不是在测试目标中。您确定将其添加到您的主要目标中吗?【参考方案3】:如果您在工作区环境中,请尝试转至文件 > 工作区设置;对于常规项目环境,请尝试转至文件 > 项目设置。
然后点击 Derived data 部分下的灰色小箭头并选择您的项目文件夹以将其删除。
和产品 > 清洁。 它在许多情况下都有帮助。
【讨论】:
以上是关于如何在 UITesting swift 4 iOS 中获取应用程序名称的主要内容,如果未能解决你的问题,请参考以下文章
iOS UITesting 如何关闭弹出框(iPad 弹出框不提醒样式)
Swift UITesting 错误:文字中的转义序列无效。 \U201c
在iOS UITesting中获取一个包含另一个带有静态文本的元素的元素