如何在 XCUITest 中使用 perform(withKeyModifier:block:) 函数执行多选

Posted

技术标签:

【中文标题】如何在 XCUITest 中使用 perform(withKeyModifier:block:) 函数执行多选【英文标题】:how to perform multi-select with perform(withKeyModifier:block:) function in XCUITest 【发布时间】:2017-09-14 06:21:09 【问题描述】:

我想在webview上多选一些元素,因此我需要使用XCUIElement的perform(withKeyModifer:block:)函数,谁能举例说明如何使用这个函数?我是 swift 新手,所以请详细说明代码,提前谢谢!

【问题讨论】:

【参考方案1】:

当修改键按下时,您可以使用该方法执行一些代码。您指定修饰键并传入一段代码以在键修饰符关闭时执行。您可以像这样使用尾随闭包语法:

let app = XCUIApplication()

// elements you want to select
let element1 = app.cells.element(boundBy: 0)
let element2 = app.cells.element(boundBy: 1)
let elementsToSelect = [element1, element2]

XCUIElement.perform(withKeyModifiers: XCUIElement.KeyModifierFlags.command) 
    // code in this block executes while the command key is down
    // select each element
    elementsToSelect.forEach( $0.tap() )

如果您正在测试桌面应用程序,则应使用 click() 而不是 tap()

使用此处列表中您需要的任何修饰键:https://developer.apple.com/documentation/xctest/xcuielement.keymodifierflags

【讨论】:

谢谢,它有效!我只是对函数前的“+”“-”信号感到困惑。 @Wayne + 表示它是一个类方法,- 表示它是一个实例方法。由于它是一个类方法,我将更新我的示例以调用该类型的 perform 方法 - 抱歉,我没有注意到! 感谢您的解释!有时间可以快速看一下这个问题吗:***.com/questions/46233901/…

以上是关于如何在 XCUITest 中使用 perform(withKeyModifier:block:) 函数执行多选的主要内容,如果未能解决你的问题,请参考以下文章

如何在 XCUITest 中进行“页面”对象设计

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

如何使用 Swift XCUITest 添加摇晃手势? [关闭]

如何通过 fastlane 在 Firebase 测试实验室中运行 XCUItest?

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

如何使用 XCUITest 检查应用程序中添加的启动图像? [关闭]