Example - Automating native macOS file dialogs with nativeType()

Skip to end of metadata
Go to start of metadata

Introduction

Currently, Squish cannot hook into the native macOS file dialogs. Nonetheless, it is still possible to automate interaction with these dialogs using the nativeType() function.

Example:

def main():
    # ...
    # the file dialog gets opened here

    # Snooze long enough for the dialog to pop up and be ready
    snooze(2)
    # Open path input field:
    nativeType("<Command+Shift+g>")
    # Wait long enough for the sheet to appear
    snooze(1)
    # Enter desired path:
    nativeType("/Users/myuser/temp.txt")
    # Give the dialog a moment's pause
    snooze(1)
    nativeType("<Return>")
    # Give the dialog a moment's pause
    snooze(1)
    # Close the dialog
    nativeType("<Return>")
    # Give the AUT a chance to handle the closing of the file dialog
    snooze(1)

The snooze() statements are important to avoid sending the key presses before the dialog appears, or faster than the dialog can process them.

The Command+Shift+g key press causes the "Go to the folder" sheet to appear:

Labels:
mac mac Delete
dialog dialog Delete
nativetype nativetype Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.