---
title: "perform(withKeyModifiers:block:)"
framework: xcuiautomation
role: symbol
role_heading: Type Method
path: "xcuiautomation/xcuielement/perform(withkeymodifiers:block:)"
---

# perform(withKeyModifiers:block:)

Executes a block of code while holding a combination keystroke.

## Declaration

```swift
class func perform(withKeyModifiers flags: XCUIElement.KeyModifierFlags, block: () -> Void)
```

## Parameters

- `flags`: A set of modifier flags (doc://com.apple.xcuiautomation/documentation/XCUIAutomation/XCUIElement/KeyModifierFlags) to use while executing the block.
- `block`: The block to execute.

## Discussion

Discussion This method sets and holds the keyboard modifiers you provide while you call methods to click on, drag from, or type into elements in the block.

## See Also

### Combining keystrokes

- [typeKey(_:modifierFlags:)](xcuiautomation/xcuielement/typekey(_:modifierflags:)-6gaoi.md)
- [typeKey(_:modifierFlags:)](xcuiautomation/xcuielement/typekey(_:modifierflags:)-9ubn.md)
- [XCUIKeyboardKey](xcuiautomation/xcuikeyboardkey.md)
- [XCUIElement.KeyModifierFlags](xcuiautomation/xcuielement/keymodifierflags.md)
