Skip to main content
Deep links are URLs that navigate directly to a specific screen within a mobile app, bypassing the normal navigation flow. Instead of tapping through multiple screens to reach a destination, a deep link takes you straight there. The most common type is a URI scheme — a custom protocol registered by the app (e.g., myapp://products/12345). This is the primary method used in Spur.
  • Skip repetitive navigation — Jump straight to the screen you want to test instead of tapping through five screens to get there.
  • Isolate test scope — Test a specific feature without coupling to login and browsing flows.
  • Test deep link behavior — Verify that your app correctly handles incoming deep links.

How It Works

In native mobile tests, Spur triggers deep links using a JavaScript injection step with the [Deeplink] label. You can add this step through the native commands UI in the test editor.
To find your app’s URI scheme, ask your development team or check the app’s configuration files (Info.plist on iOS, AndroidManifest.xml on Android).

Example

Screenshot2026 03 05at2 52 46PM
This test deep links from the home screen directly to a product collection page:
Wait for the app to load

If "Sign In" is displayed, tap Sign In and log in. Otherwise, skip this step.

Navigate to the home page

Cached Action: [Deeplink] {{ window.location = 'myapp://collections/womens-shop-all'; }}

Wait 2 seconds

Verify that "Women's Shop All" is displayed
The URI scheme myapp:// routes to the app, and the path collections/womens-shop-all tells it which screen to display.
Always add a wait or verify step after a deep link to give the app time to load the target screen.

Best Practices

  • Use the recommended starting template to handle login and popups before triggering the deep link.
  • Always verify the expected screen loaded after the deep link.
  • If a test starts failing after an app update, check whether the URI scheme or path has changed.