Skip to content

Best Practices

  • Always pass wait first: Public APIs accept WebDriverWait then derive driver via wait._driver. Keep custom helpers consistent.
  • Normalize labels: Use exact label APIs when possible; fall back to partial label variants when labels carry dynamic counts/suffixes.
  • Keep NBSP handling: Locators rely on translate(., "\u00a0", " ") to normalize Appian whitespace—preserve this in new XPaths.
  • Use safe click: Prefer ComponentUtils.click over element.click() to handle overlays/animations.
  • Respect table indexing: Public table APIs take 0-based rows; convert to 1-based only inside helpers.
  • Retry intentionally: Wrap only flaky waits/actions with RoboUtils.retry_on_timeout; avoid masking real failures.
  • Keep APIs deterministic: Avoid global state; ensure utilities are importable and side-effect free for external tests.