swift 如果静态文本的标签(变量)包含“弯引号”,是否可以检测到该静态文本?

6za6bjd0  于 2022-12-10  发布在  Swift
关注(0)|答案(1)|浏览(131)

我需要在屏幕上Assert生成的staticText的存在。staticText的标签是以下操作的结果:
1.用户输入的文本(变量!)
1.应用程序在开头和结尾添加的 curl 引号
因此,如果用户输入“abc”,staticText标签将是“abc”。因此,我需要Assert一个变量,而不是一个固定字符串。
函数测试()抛出{

//This part of the code I use to simulate the input.

let searchTerm = "abc"

app.typeText(searchTerm)

//This assert works but the input is variable so I need the assert to be based on a variable  
XCTAssertTrue(app.staticTexts\["“abc”"\].exists)

//So I build this string in order to search for this staticText

let静态文本标签=“"\(搜索术语)"”
此Assert失败,表示staticText不存在

XCTAssertTrue(app.staticTexts\[staticTextLabel\].exists)

//This works normally if the label I am looking for does not contain curly quotes!

}

通过断点并在调试控制台上执行该代码,我得到:
请输入您的密码:0x 7 ff 12 af 25 b50,{...},标签:'abc'
po静态文本标签--〉“abc”
存在--〉真
存在--〉False
你能评估一下我在这里可能遗漏了什么吗?assert对其他不包含这些花引号的变量staticText有效。“
enter image description here这是静态文本在应用程序中的显示方式。在本例中,搜索的不是abc,而是导致问题的右弯引号!

nfeuvbwi

nfeuvbwi1#

您的字符串 * 不 * 匹配。
staticTextLabel使用”abc”,而app.staticTexts["“abc”"]使用“abc”
如果你把这两个变量都放到a diff tool中,你会发现左引号是不一样的。变量是right double quote,而元素返回的是left double quote。你可以通过观察字符顶部和底部的权重来直观地看到细微的差别。

相关问题