【发布时间】:2017-07-06 21:38:37
【问题描述】:
我正在尝试本地化我的 UITests 以使用其他语言(目前使用 Snapshot 来自动截屏,这就是我需要它工作的原因)。
我现在的主要问题是IQKeyboardManager 中的“完成”按钮。
在英文中,我有以下代码,它工作正常:
app.toolbars.buttons["Done"].tap()
输入文本后点击完成按钮。
在西班牙语中,该按钮称为“确定”。看起来它是从一些默认的 UIKit 本地化字符串或类似的东西中获取的。
我尝试在我的 UITest es.lproj 文件夹中添加一个 .strings 文件并将 "UIBarButtonSystemItem.Done" = "OK"; 放入其中。
我也改成:
app.toolbars.buttons[NSLocalizedString("UIBarButtonSystemItem.Done", bundle: Bundle.main, value: "Done", comment: "")].tap()
那没有用。始终使用“完成”。
总是报错:
没有找到“完成”按钮的匹配项。
我也试过了:
app.toolbars.buttons[NSLocalizedString("UIBarButtonSystemItem.Done", comment: "")].tap()
这导致了一个错误:
没有找到“UIBarButtonSystemItem.Done”按钮的匹配项。
所以看起来我的 .strings 文件不适用于我的 UITests。关于如何让它工作的任何想法?
【问题讨论】:
-
如果字符串文件位于 UI 测试目标的包中,那么我认为您无法使用 Bundle.main 访问它。见stackoverflow.com/questions/1879247/… 或stackoverflow.com/questions/33609325/…
-
@TitouandeBailleul 好的,这似乎工作得更好。但由于某种原因,它现在正在使用我的西班牙语 .strings 文件来处理所有内容。即使是英文的。通常在我的主项目中,我使用英文版的密钥,而西班牙文和其他版本在 .strings 文件中。但由于某种原因,它甚至使用英语的西班牙语 .strings 文件。有什么想法吗?
标签: ios swift localization xcode-ui-testing iqkeyboardmanager