When a Step, Trigger, or Automation stops finding its element right after your team ships code, the usual cause is a class or id your app generates automatically and renames on every build. Chameleon leaves those names out when you select an element, so new selections keep matching after a deploy.
Why selectors break after a deploy
Chameleon finds an element by details like its tag, class, id, text, and the elements around it (read Selecting the right element). Many frameworks and styling tools, such as React, Angular, Vue, and styled-components, generate some of these names, and the next build can give them new ones. A selector saved with one stops matching, and the Step, Trigger, or Automation stops showing with no error.
ℹ️ A class like sc-ykwyP or an id like :r2a: is generated and can change on the next deploy. A class like primary-button was written by your team and stays put.
How Chameleon keeps new selections stable
When you click an element in the Builder, you'll see "Building a stable selector…" for a few seconds while Chameleon checks each name and drops the ones that look generated. Names your team wrote stay: a class list like btn sc-ykwyP primary is saved as btn primary. If dropping them would leave nothing to find the element by, or the check takes longer than about 20 seconds, Chameleon keeps the element exactly as you picked it.
Recording an Automation doesn't wait: each step saves as captured, and the cleaned version replaces it a few seconds later.
Fix an older selector
To fix one that stopped matching after a deploy:
Open the Step, or the Automation step, in the Builder
Click the element selector
Select the element again
If it still stops matching after a deploy, read My Experience isn't showing on the right page or get in touch with us.
