我需要在屏幕上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,而是导致问题的右弯引号!
1条答案
按热度按时间nfeuvbwi1#
您的字符串 * 不 * 匹配。
staticTextLabel
使用”abc”
,而app.staticTexts["“abc”"]
使用“abc”
。如果你把这两个变量都放到a diff tool中,你会发现左引号是不一样的。变量是right double quote,而元素返回的是left double quote。你可以通过观察字符顶部和底部的权重来直观地看到细微的差别。