# Troubleshooting Test Recording Issues

:::lead
Diagnose and resolve common issues encountered while recording user interactions in the TestOwl Desktop App.
:::

When recording tests against modern web applications, complex DOM structures, cross-origin iframes, dynamic shadow DOM trees, or aggressive security policies can occasionally interfere with recording events. This guide covers how to resolve each scenario.

## Element clicks or inputs are not captured

If clicking a button or typing into a field does not produce an action step in the recording drawer:

### 1. Check for pointer-events: none and overlay elements
Modern modal dialogs and cookie banners often use invisible backdrop elements or nested `pointer-events: none` CSS rules. TestOwl listens to standard pointer and keyboard events. If a wrapper element absorbs the event:
- Hover over the element and pause for 500ms; TestOwl's element inspector highlights the target element.
- Click directly on the inner text node or button label rather than the outer layout container.

### 2. Verify Desktop App accessibility permissions
On macOS and Windows, recording keystrokes and native mouse actions requires input monitoring permissions:
- **macOS:** Open **System Settings > Privacy & Security > Accessibility** and ensure **TestOwl** is toggled **ON**.
- **Windows:** Ensure the TestOwl Desktop App is not blocked by Windows Defender SmartScreen or local antivirus heuristics.

### 3. Handle cross-origin iframes
Embedded elements—such as Stripe checkout fields, Google reCAPTCHA, or third-party payment widgets—live inside cross-origin `<iframe>` tags:
- TestOwl supports recording inside iframes if the parent page allows script injection.
- If the iframe enforces strict `X-Frame-Options` or CSP restrictions, navigate directly to the iframe source URL during recording, or use the **Switch Frame** step in the Step Editor.

## Dynamic IDs and changing selectors

If an element is recorded with an auto-generated ID (such as `#button-uuid-4912`):
- TestOwl automatically generates multi-attribute locators combining text content, accessibility role, and parent hierarchy alongside the ID.
- If the target website regenerates IDs on every page load, open the Step Editor and refine the locator to prioritize `data-testid`, `aria-label`, or visible button text.

## Recording through corporate proxies or VPNs

If the target web application fails to load during recording:
1. Open **Environments > Network & Proxy** in TestOwl.
2. Verify if a custom proxy (HTTP/HTTPS/SOCKS5) is required to resolve internal corporate domains or staging URLs.
3. If your company uses self-signed SSL certificates, enable **Ignore SSL Errors** in the Environment configuration for staging runs.

## Need more help?

- Learn how [self-healing test automation](https://testowl.ai/features/self-healing) handles dynamic UI changes.
- Consult our guide on [The Step Editor](/docs/building-tests/the-editor) to manually add or edit steps.
- If issues persist, [submit an issue report](/docs/support/report-an-issue) or reach out at [support@testowl.ai](mailto:support@testowl.ai).
