【发布时间】:2016-02-18 14:15:12
【问题描述】:
我正在为我的应用编写 UI 测试,它的内容使用 UIWebView。当 webview 中的按钮被按下时,它会编写如下测试用例:
func testExample() {
let app = XCUIApplication()
app.staticTexts["Log In"].tap()
}
这里的问题是,如果应用程序在不同的本地化中(例如“de-DE”),那么带有文本“登录”的按钮不存在。取而代之的是它的“Anmelden”。 我尝试了以下方法,但它们都不起作用:
Localizable.strings 版本:
func testExample() {
let name = NSLocalizedString("Log In", comment: "")
let app = XCUIApplication()
app.staticTexts[name].tap()
}
和
public class Titles {
var homeScreenLogIn = "Log In"
}
public class TitlesDE: Titles {
override init() {
super.init()
homeScreenLogIn = "Anmelden"
}
}
...
func testExample() {
titles = TitlesDE()
let name = titles.homeScreenLogIn
let app = XCUIApplication()
app.staticTexts[name].tap()
}
UI 测试失败 - 找到多个匹配项:
问题还在于我似乎无法弄清楚如何将数据转储到调试/测试输出,因为print() 似乎不起作用。
【问题讨论】:
标签: ios swift xctest xcode-ui-testing