我目前正在努力使用Fastlane或更好的快照来自动生成屏幕截图。 我的想法是通过将用户名和密码粘贴到相应的文本字段中来超越登录屏幕,但是通过添加更多语言,我不得不翻译上下文按钮。
extension XCUIElement {
func setText(text: String, application: XCUIApplication, reference: AnyClass) {
UIPasteboard.general.string = text
doubleTap()
application.menuItems["ctx_paste".localized(for: SomeUITestClass.self)].tap()
}
}
extension String {
public func localized(for aClass: AnyClass) -> String {
return NSLocalizedString(self, tableName: nil, bundle: Bundle(for: aClass), comment: "")
}
}
使用上面的代码(并将.strings文件添加到UITest目标中),我已经能够使其在Xcode中工作,甚至在快照中也能工作,但仅适用于英语,因为设备语言仍然英语...不知何故 上下文菜单为德语,但快照中使用的翻译为英语,因此“ ctx_paste”被翻译为“ Paste”而不是“ Einsetzen”
[!] iPhone 8: No matches found for Find: Elements matching predicate '"Paste" IN identifiers' from input {(
MenuItem, 0x600000394020, traits: 4503599627370496, label: 'Einsetzen'
)}
有人已经在同一个问题上挣扎了吗?