如何打印 XCUITest 中的所有静态文本

Posted

技术标签:

【中文标题】如何打印 XCUITest 中的所有静态文本【英文标题】:How to print all the staticTexts in XCUITest 【发布时间】:2019-07-02 07:27:33 【问题描述】:

我使用app.staticTexts["String"].tap() 点按了一个包含该字符串的按钮,该按钮运行良好。 但这里的问题是我想打印该页面上存在的所有static 文本,我该如何在XCUITest 中做到这一点? 我的目标是遍历页面上的所有 static 文本,然后在我的预期文本上添加 if 条件。

【问题讨论】:

您可以尝试查找所有可访问性元素并进行迭代,检查 XCUIElementQuery。但是你想做的看起来更像是单元测试而不是 UITest, @Lu_ 我实际上想遍历页面上存在的所有静态文本,然后我将在预期文本上添加if 条件。那么我该怎么做呢 【参考方案1】:

你可以使用类似的东西:

    for staticText in app.staticTexts.allElementsBoundByIndex 
        if staticText.label == "test" 

        
    

【讨论】:

【参考方案2】:
//Returns all the labels,buttons, textfield,images in the page with its  name.
//Just change the element name in loop according to the need.




 for staticText in  app.staticTexts.allElementsBoundByIndex

            if staticText != nil
                print(staticText.label)
            else
                print("No static text found")
            

        

【讨论】:

【参考方案3】:

我想文本存在于staticText 元素的identifier 属性中。您可以尝试以下方法

for i in 0..<app.staticTexts.count 
    let text = app.staticTexts.element(boundBy: i).identifier
    print(text)
    if text == "Your String" 
        // Your code
    

【讨论】:

它为每个循环打印“Find the StaticText”字符串,虽然我想要 staticText 值 代替identifier,尝试使用valuelabeltitle

以上是关于如何打印 XCUITest 中的所有静态文本的主要内容,如果未能解决你的问题,请参考以下文章

如何从 XCUITest(来自 Xcode 11)中的 xcresult 文件中提取详细信息?

XCUITest 无法检测到我动态生成的 tableView 的可访问性 id

XCUITest - 如何访问 XCUITest 中的应用设备令牌以触发推送通知,但无需在应用代码中设置任何 UIView?

单击 XCUITest 中的按钮后,如何验证和断言是不是正在播放动画?

用于 XCUITest 的 iOS 模拟器中的强制软件键盘

如何从 XCUITest 中的 MenuItem 读取值?