0
votes

I want to multiple-select some element on the webview, therefore I would need to use perform(withKeyModifer:block:) function of XCUIElement, can any one give an example on how to use this function? I'm new to swift so please elaborate the code, thanks in advance!

1

1 Answers

0
votes

You use the method to perform some code while a modifier key is down. You specify the modifier key and pass in a block of code to execute while the key modifier is down. You can use trailing closure syntax for this like so:

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() })
}

If you are testing a desktop app, you should use click() instead of tap().

Use whichever modifier key you need from the list here: https://developer.apple.com/documentation/xctest/xcuielement.keymodifierflags