gpt4 book ai didi

ios - 带有本地化 app.staticTexts 的 UI 测试 (XCTest)

转载 作者:行者123 更新时间:2023-11-28 06:48:47 25 4
gpt4 key购买 nike

我正在为我的应用程序编写 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 Testing failure - Multiple matches found:

问题还在于我似乎无法弄清楚如何将数据转储到调试/测试输出,因为 print() 似乎不起作用。

最佳答案

您应该使用所有 UIKit 对象都具有的 accessibilityIdentifier 属性,因为此字符串未本地化,它仅用于 UI 自动化。

也就是说,当您使用 UIWebView 的内容时,似乎没有一个简单的解决方案。

关于ios - 带有本地化 app.staticTexts 的 UI 测试 (XCTest),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35483844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com