{"version":1,"pages":[{"id":"KnjnJ0NRiTu5GwiazWms","title":"Welcome to DoesQA","pathname":"/","siteSpaceId":"sitesp_BULzg","description":"Learn how to build and run website tests in DoesQA without writing code."},{"id":"RXJZBinySUiUsXSI5NE9","title":"DoesQA concepts","pathname":"/getting-started/doesqa-concepts","siteSpaceId":"sitesp_BULzg","description":"Learn how Flows, Test Steps, Test Cases, and Runs fit together in DoesQA.","breadcrumbs":[{"label":"Getting Started"}]},{"id":"0zHqQpzxaKodam3gDcRR","title":"Create and run your first Flow","pathname":"/getting-started/create-and-run-your-first-flow","siteSpaceId":"sitesp_BULzg","description":"Build your first Flow with Open, Touch, and Check, starting in the Scenario editor and finishing in the Flow Builder.","breadcrumbs":[{"label":"Getting Started"}]},{"id":"MlZPt17mJptRjMR3prya","title":"Understand your results","pathname":"/getting-started/understand-your-results","siteSpaceId":"sitesp_BULzg","description":"Read a first Run, open a Test Case, and decide what to change next.","breadcrumbs":[{"label":"Getting Started"}]},{"id":"w60zFP9X5Tl94gZlD05w","title":"Terminology","pathname":"/getting-started/terminology","siteSpaceId":"sitesp_BULzg","description":"Learn the words DoesQA uses to describe flows, tests, and runs.","breadcrumbs":[{"label":"Getting Started"}]},{"id":"GORGQwZ1ORDauU9FBBzG","title":"Flow Builder","pathname":"/platform/flow-builder","siteSpaceId":"sitesp_BULzg","description":"Build and rearrange Flows on a visual canvas with the Flow Builder.","breadcrumbs":[{"label":"Platform"}]},{"id":"bkrYwgszMRrTgUD23HQ6","title":"Scenario editor","pathname":"/platform/scenario-editor","siteSpaceId":"sitesp_BULzg","description":"Build a single-path Flow as plain-language sentences in the Scenario editor.","breadcrumbs":[{"label":"Platform"}]},{"id":"Lh1Wp6dRLGv9711CCv8s","title":"DoesQA AI","pathname":"/platform/doesqa-ai","siteSpaceId":"sitesp_BULzg","description":"DoesQA AI speeds up testing across the product, stays in our UK datacentre, and stays optional.","breadcrumbs":[{"label":"Platform"}]},{"id":"KmF3f5awzDGE93RTgr12","title":"Security","pathname":"/platform/security","siteSpaceId":"sitesp_BULzg","description":"How DoesQA protects customer data: what is stored, credentials, UK AWS hosting, encryption at rest, Cyber Essentials, access control, and retention.","breadcrumbs":[{"label":"Platform"}]},{"id":"xXKybMaQtpLoUqj8uilS","title":"Integrations","pathname":"/platform/integrations","siteSpaceId":"sitesp_BULzg","description":"Connect DoesQA to CI, chat tools, agents, and automation platforms.","breadcrumbs":[{"label":"Platform"}]},{"id":"OH1Hkvf5TJdqF5SzfEDB","title":"Universal Webhook","pathname":"/platform/integrations/universal-webhook","siteSpaceId":"sitesp_BULzg","description":"Start a DoesQA Run from any system with an HTTP webhook.","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"U9YoJulWXFnj2vXVBnLv","title":"GitHub","pathname":"/platform/integrations/github","siteSpaceId":"sitesp_BULzg","description":"Start DoesQA Runs from GitHub Actions with the DoesQA GitHub Action.","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"04LnYAeYtfQ2IcHMfbrO","title":"GitLab","pathname":"/platform/integrations/gitlab","siteSpaceId":"sitesp_BULzg","description":"Start DoesQA Runs from GitLab CI with the DoesQA catalog component.","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"dgQNH8nHnHexOfmZvnBv","title":"Bitbucket","pathname":"/platform/integrations/bitbucket","siteSpaceId":"sitesp_BULzg","description":"Start DoesQA Runs from Bitbucket Pipelines with the Universal Webhook.","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"dkLO1lfCcxAlKChT9n7R","title":"Azure DevOps","pathname":"/platform/integrations/azure-devops","siteSpaceId":"sitesp_BULzg","description":"Start DoesQA Runs from Azure Pipelines with the Universal Webhook.","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"lchC2PNHm6eWChW1lJYP","title":"Make","pathname":"/platform/integrations/make","siteSpaceId":"sitesp_BULzg","description":"Start DoesQA Runs from Make with the Universal Webhook.","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"3KvTEDr7xwVEphxf3jR8","title":"Zapier","pathname":"/platform/integrations/zapier","siteSpaceId":"sitesp_BULzg","description":"Start DoesQA Runs from Zapier with the Universal Webhook.","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"cjBX8FolY5RAeaSd2y9A","title":"n8n","pathname":"/platform/integrations/n8n","siteSpaceId":"sitesp_BULzg","description":"Start DoesQA Runs from n8n with the Universal Webhook.","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"g6uPV2JZt2xje2hFD5tE","title":"Slack","pathname":"/platform/integrations/slack","siteSpaceId":"sitesp_BULzg","description":"Connect Slack to DoesQA for Run alerts and in-Flow messages.","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"IxV9j2VW1l4AxFd7Aehd","title":"Microsoft Teams","pathname":"/platform/integrations/microsoft-teams","siteSpaceId":"sitesp_BULzg","description":"Connect Microsoft Teams to DoesQA for Run alerts in channel.","breadcrumbs":[{"label":"Platform"},{"label":"Integrations"}]},{"id":"lgZP62ICQWugFsKr3PCr","title":"Interacting with emails","pathname":"/guides/interacting-with-emails","siteSpaceId":"sitesp_BULzg","description":"Use DoesQA inboxes and Mail Test Steps to test registration, password reset, and other email journeys.","breadcrumbs":[{"label":"Guides"}]},{"id":"YqtJQXnu5WM5R3xVcfZ1","title":"Test a forgotten-password flow","pathname":"/guides/test-a-forgotten-password-flow","siteSpaceId":"sitesp_BULzg","description":"Test a forgotten-password journey with DoesQA email and the Flow Builder.","breadcrumbs":[{"label":"Guides"}]},{"id":"5WlF3ZwJRq1NCY8UhPCu","title":"Test registration and email verification","pathname":"/guides/test-registration-and-email-verification","siteSpaceId":"sitesp_BULzg","description":"Register a new account, verify the email, and confirm the user is signed in.","breadcrumbs":[{"label":"Guides"}]},{"id":"YvLQmmmSE1hQVz9vOk3J","title":"Test MFA login","pathname":"/guides/test-mfa-login","siteSpaceId":"sitesp_BULzg","description":"Automate a login that asks for a time-based MFA code.","breadcrumbs":[{"label":"Guides"}]},{"id":"vLBGV2Qi5HfeCHnJrGzS","title":"Reuse a login session","pathname":"/guides/reuse-a-login-session","siteSpaceId":"sitesp_BULzg","description":"Log in once, store the session, and pass it into other Flows with DoesQA Run.","breadcrumbs":[{"label":"Guides"}]},{"id":"oPJJDlWuDS2I3o83RKAv","title":"Test checkout and payments","pathname":"/guides/test-checkout-and-payments","siteSpaceId":"sitesp_BULzg","description":"Automate cart, address, and payment steps through to order confirmation.","breadcrumbs":[{"label":"Guides"}]},{"id":"zik2LE2r54eKHPKyqBIA","title":"Test APIs in a Flow","pathname":"/guides/test-apis-in-a-flow","siteSpaceId":"sitesp_BULzg","description":"Call an API from a Flow, store the response as a Value, and assert JSON.","breadcrumbs":[{"label":"Guides"}]},{"id":"BfZkMXuhYDGwrhbzG91N","title":"Test file uploads and downloads","pathname":"/guides/test-file-uploads-and-downloads","siteSpaceId":"sitesp_BULzg","description":"Generate files, upload them into inputs, and reuse the last download in a Flow.","breadcrumbs":[{"label":"Guides"}]},{"id":"t0b9e0bq6ovrgLloqRJR","title":"Test tabs, windows, and frames","pathname":"/guides/test-tabs-windows-and-frames","siteSpaceId":"sitesp_BULzg","description":"Move between tabs, windows, and iframes while a Flow runs.","breadcrumbs":[{"label":"Guides"}]},{"id":"wuGBDXqMGBK8thivGgnp","title":"Reuse steps with Step Groups","pathname":"/better-coverage/reuse-steps-with-step-groups","siteSpaceId":"sitesp_BULzg","description":"Create reusable Step Groups so shared journeys stay in sync across Flows.","breadcrumbs":[{"label":"Better Coverage"}]},{"id":"twjsExhKN010lg3YGchT","title":"Choose durable selectors","pathname":"/better-coverage/choose-durable-selectors","siteSpaceId":"sitesp_BULzg","description":"Choose Element Selectors that stay stable as the page design changes.","breadcrumbs":[{"label":"Better Coverage"}]},{"id":"loafBsFOaOIrZodIQjiO","title":"Share data with Values","pathname":"/better-coverage/share-data-with-values","siteSpaceId":"sitesp_BULzg","description":"Create Values, insert them with $, and pass data between steps and Runs.","breadcrumbs":[{"label":"Better Coverage"}]},{"id":"EEJUDxVhdw6TdES9QtG2","title":"Choose Flow Branch shapes","pathname":"/better-coverage/choose-flow-branch-shapes","siteSpaceId":"sitesp_BULzg","description":"Choose how Flow Branches join and split when one Flow should cover more than one path.","breadcrumbs":[{"label":"Better Coverage"}]},{"id":"iXTW9IUZoeBaIOmvNImW","title":"Build smoke and regression coverage","pathname":"/better-coverage/build-smoke-and-regression-coverage","siteSpaceId":"sitesp_BULzg","description":"Tag Flow Branches and use Run Recipes to run smoke or regression coverage.","breadcrumbs":[{"label":"Better Coverage"}]},{"id":"9a9yHAKNUgAdjR4HcXRS","title":"Run across environments","pathname":"/better-coverage/run-across-environments","siteSpaceId":"sitesp_BULzg","description":"Point the same Flows at staging or production with Values, recipes, and tags.","breadcrumbs":[{"label":"Better Coverage"}]},{"id":"Eg8Tkxv2WP8hs3df3Z7V","title":"Add visual checks","pathname":"/better-coverage/add-visual-checks","siteSpaceId":"sitesp_BULzg","description":"Catch visual and layout changes with Vision Test Steps in the Flow Builder.","breadcrumbs":[{"label":"Better Coverage"}]},{"id":"9lCj11NZlHwInAhTaTtC","title":"Add accessibility checks","pathname":"/better-coverage/add-accessibility-checks","siteSpaceId":"sitesp_BULzg","description":"Add Axe, Pa11y, Lighthouse Accessibility, and computed role or label Checks.","breadcrumbs":[{"label":"Better Coverage"}]},{"id":"8YWpn2EfLvh3tx6YfAce","title":"Test page performance","pathname":"/better-coverage/test-page-performance","siteSpaceId":"sitesp_BULzg","description":"Assert a Lighthouse performance score on a page in your Flow.","breadcrumbs":[{"label":"Better Coverage"}]},{"id":"poCwTR9pWqQ1P3Gl3Rk4","title":"Test SEO","pathname":"/better-coverage/test-seo","siteSpaceId":"sitesp_BULzg","description":"Assert a Lighthouse SEO score on a page in your Flow.","breadcrumbs":[{"label":"Better Coverage"}]},{"id":"MkUz7W9xKy3LzrKQiJli","title":"Check links","pathname":"/better-coverage/check-links","siteSpaceId":"sitesp_BULzg","description":"Find broken or failing links on a page or inside an Element.","breadcrumbs":[{"label":"Better Coverage"}]},{"id":"ZZJ9daVqRqaI5B1DHZts","title":"Starter","pathname":"/test-steps/starter","siteSpaceId":"sitesp_BULzg","description":"Open a browser and start every Flow with the Starter Test Step.","breadcrumbs":[{"label":"Test Steps"}]},{"id":"FSUrOFiLaldlcJfUZ58M","title":"Open","pathname":"/test-steps/starter/open","siteSpaceId":"sitesp_BULzg","description":"Open a URL to start every Test Case, and choose the browser or Simulated Device.","breadcrumbs":[{"label":"Test Steps"},{"label":"Starter"}]},{"id":"8QCiv28lWE1Rks8eoj88","title":"Browser","pathname":"/test-steps/browser","siteSpaceId":"sitesp_BULzg","description":"Move between pages, tabs, and files, or run custom browser script during a Flow.","breadcrumbs":[{"label":"Test Steps"}]},{"id":"puTpKyduaS2rGSS48X0V","title":"Go To Absolute URL","pathname":"/test-steps/browser/go-to-absolute-url","siteSpaceId":"sitesp_BULzg","description":"Navigate the browser to a full URL.","breadcrumbs":[{"label":"Test Steps"},{"label":"Browser"}]},{"id":"FbwyvAbwZwIRYKjri4tF","title":"Go To Relative Path","pathname":"/test-steps/browser/go-to-relative-path","siteSpaceId":"sitesp_BULzg","description":"Navigate the browser to a path on the current site.","breadcrumbs":[{"label":"Test Steps"},{"label":"Browser"}]},{"id":"ekHW72wDVogvxn6WCv7Y","title":"Reload","pathname":"/test-steps/browser/reload","siteSpaceId":"sitesp_BULzg","description":"Reload the current page in the browser.","breadcrumbs":[{"label":"Test Steps"},{"label":"Browser"}]},{"id":"MSUfz7dVdFh6p6IJd1MQ","title":"Back","pathname":"/test-steps/browser/back","siteSpaceId":"sitesp_BULzg","description":"Navigate back.","breadcrumbs":[{"label":"Test Steps"},{"label":"Browser"}]},{"id":"plk61NdLufzkBHFolrXC","title":"Forward","pathname":"/test-steps/browser/forward","siteSpaceId":"sitesp_BULzg","description":"Navigate forward.","breadcrumbs":[{"label":"Test Steps"},{"label":"Browser"}]},{"id":"Awh15FSSS201g6NqyJbc","title":"Open File","pathname":"/test-steps/browser/open-file","siteSpaceId":"sitesp_BULzg","description":"Open a downloaded or generated file in the browser.","breadcrumbs":[{"label":"Test Steps"},{"label":"Browser"}]},{"id":"zGYq8Sacnm4wInqsOVFG","title":"Run Browser Script","pathname":"/test-steps/browser/run-browser-script","siteSpaceId":"sitesp_BULzg","description":"Run JavaScript in the browser during a Test Case.","breadcrumbs":[{"label":"Test Steps"},{"label":"Browser"}]},{"id":"DjztmPEBPZSihEEF4ALD","title":"Next Tab","pathname":"/test-steps/browser/next-tab","siteSpaceId":"sitesp_BULzg","description":"Switch to the next browser tab.","breadcrumbs":[{"label":"Test Steps"},{"label":"Browser"}]},{"id":"u6yc7ocoxbwKGv5zTApI","title":"Previous Tab","pathname":"/test-steps/browser/previous-tab","siteSpaceId":"sitesp_BULzg","description":"Switch to the previous browser tab.","breadcrumbs":[{"label":"Test Steps"},{"label":"Browser"}]},{"id":"Ilu1SjiK1iUqqJ1TOeNi","title":"Close Current Tab","pathname":"/test-steps/browser/close-current-tab","siteSpaceId":"sitesp_BULzg","description":"Close the current browser tab.","breadcrumbs":[{"label":"Test Steps"},{"label":"Browser"}]},{"id":"c7GrdxRHQnPBy8aTZnGO","title":"Action","pathname":"/test-steps/action","siteSpaceId":"sitesp_BULzg","description":"Click, type, upload, scroll, and interact with Elements on the page.","breadcrumbs":[{"label":"Test Steps"}]},{"id":"xMER27UZehQWNIOMejSH","title":"Touch","pathname":"/test-steps/action/touch","siteSpaceId":"sitesp_BULzg","description":"Click or tap an Element or screen position.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"ct5knthYbXJX5bmqdN6H","title":"Double Tap","pathname":"/test-steps/action/double-tap","siteSpaceId":"sitesp_BULzg","description":"Double Tap (double click) and element or position.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"LVMVjfkeldQD2pC6vGbz","title":"Drag and Drop","pathname":"/test-steps/action/drag-and-drop","siteSpaceId":"sitesp_BULzg","description":"Drag an Element and drop it onto another Element.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"HhVw0tm5dM2rcguvXlBt","title":"Clear","pathname":"/test-steps/action/clear","siteSpaceId":"sitesp_BULzg","description":"Clear the text in an input Element.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"T6NENe8xUUAlHlSYZbGS","title":"File","pathname":"/test-steps/action/file","siteSpaceId":"sitesp_BULzg","description":"Upload a file into a file input Element.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"qznyghhzhtfDviYk8E57","title":"Select Option","pathname":"/test-steps/action/select-option","siteSpaceId":"sitesp_BULzg","description":"Choose an option in a select Element by value, text, or index.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"evhP8RXEy9aL9GNFlNbz","title":"Send Keys","pathname":"/test-steps/action/send-keys","siteSpaceId":"sitesp_BULzg","description":"Send keyboard keys, including special keys such as Enter and Tab.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"rA2gN5hghJ7o5LH7DKJT","title":"Set MFA","pathname":"/test-steps/action/set-mfa","siteSpaceId":"sitesp_BULzg","description":"Type a time-based MFA code into an Element.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"82rZlEXfDj8WkROSsbes","title":"Open Plugin","pathname":"/test-steps/action/open-plugin","siteSpaceId":"sitesp_BULzg","description":"Install and open plugins from the Chrome Plugin Web Store.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"xzAmW6KGHOtmcsET8amf","title":"Scroll Into View","pathname":"/test-steps/action/scroll-into-view","siteSpaceId":"sitesp_BULzg","description":"Scroll into view","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"pGASw7CaVSBFijwXN7mT","title":"Scroll To Edge","pathname":"/test-steps/action/scroll-to-edge","siteSpaceId":"sitesp_BULzg","description":"Scroll the page or element to a specific edge.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"3kmaoCbway6Wx2C1STCm","title":"Hover","pathname":"/test-steps/action/hover","siteSpaceId":"sitesp_BULzg","description":"Move the pointer over an Element or screen position.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"mpFXQgg847WiaWNSwPIs","title":"Touch and Hold","pathname":"/test-steps/action/touch-and-hold","siteSpaceId":"sitesp_BULzg","description":"Touch and hold an element or position.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"2P0Pl7uR9KmbN79AhH6Y","title":"Touch Release","pathname":"/test-steps/action/touch-release","siteSpaceId":"sitesp_BULzg","description":"Touch Release an element or position.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"IBcqiEFu1GnElApoZMg5","title":"Set Value","pathname":"/test-steps/action/set-value","siteSpaceId":"sitesp_BULzg","description":"Fill an input Element with text or a Value.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"HOIkziGOexm0KOLNs4iM","title":"Scan","pathname":"/test-steps/action/scan","siteSpaceId":"sitesp_BULzg","description":"Scan an element for QR codes.","breadcrumbs":[{"label":"Test Steps"},{"label":"Action"}]},{"id":"spIOZXQcxZyrKyLYxJC1","title":"Check","pathname":"/test-steps/check","siteSpaceId":"sitesp_BULzg","description":"Assert what the page, Element, browser, or stored data should look like.","breadcrumbs":[{"label":"Test Steps"}]},{"id":"zAUNYc3NYxhv1vNDt2zO","title":"Check Displayed","pathname":"/test-steps/check/check-displayed","siteSpaceId":"sitesp_BULzg","description":"Confirm an Element is shown on the page.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"bvsXjpLh62ZcRU5Sz0IY","title":"Check Not Displayed","pathname":"/test-steps/check/check-not-displayed","siteSpaceId":"sitesp_BULzg","description":"Confirm an Element is not shown on the page.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"8unT0Rqfay6NxIQ3jZ3i","title":"Check Visible","pathname":"/test-steps/check/check-visible","siteSpaceId":"sitesp_BULzg","description":"Check a specific element is currently visible.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"H1s7meCpOEPagzxBWZxW","title":"Check Not Visible","pathname":"/test-steps/check/check-not-visible","siteSpaceId":"sitesp_BULzg","description":"Check a specific element is not currently visible.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"EchhOCHXLVsKKhAJSM25","title":"Check Exists","pathname":"/test-steps/check/check-exists","siteSpaceId":"sitesp_BULzg","description":"Confirm an Element is in the DOM.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"cy7DXQZu6X30I938jVGq","title":"Check Does Not Exist","pathname":"/test-steps/check/check-does-not-exist","siteSpaceId":"sitesp_BULzg","description":"Confirm an Element is not in the DOM.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"F1neXM5JREIid3hKcrik","title":"Check Enabled","pathname":"/test-steps/check/check-enabled","siteSpaceId":"sitesp_BULzg","description":"Check a specific element is currently enabled.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"UqewDHcJgdcAA6j4WgUs","title":"Check Disabled","pathname":"/test-steps/check/check-disabled","siteSpaceId":"sitesp_BULzg","description":"Confirm an Element is disabled.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"eD1B4C1Pr57WqoIyHV9G","title":"Check Clickable","pathname":"/test-steps/check/check-clickable","siteSpaceId":"sitesp_BULzg","description":"Confirm an Element is ready to click.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"lIj3iWeZwUGjrtTulAQj","title":"Check Not Clickable","pathname":"/test-steps/check/check-not-clickable","siteSpaceId":"sitesp_BULzg","description":"Confirm an Element is not ready to click.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"q74Elv8RBaKblDHVUSGy","title":"Check Focused","pathname":"/test-steps/check/check-focused","siteSpaceId":"sitesp_BULzg","description":"Check a specific element is currently focused.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"9rOUp3M6uzaIYwkYwWtk","title":"Check Not Focused","pathname":"/test-steps/check/check-not-focused","siteSpaceId":"sitesp_BULzg","description":"Check a specific element is not currently focused.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"BkW13EUFgZRp9hiw1PXO","title":"Check Selected","pathname":"/test-steps/check/check-selected","siteSpaceId":"sitesp_BULzg","description":"Confirm an Element is selected or checked.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"u8GdCcFH3bWw7G5ZobZP","title":"Check Not Selected","pathname":"/test-steps/check/check-not-selected","siteSpaceId":"sitesp_BULzg","description":"Check a specific element is not currently selected.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"ILqk24DRikvKBGzCHS9B","title":"Check Text","pathname":"/test-steps/check/check-text","siteSpaceId":"sitesp_BULzg","description":"Assert the visible text of an Element.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"9hj2GcvFeNAB2WMp8J3M","title":"Check Value","pathname":"/test-steps/check/check-value","siteSpaceId":"sitesp_BULzg","description":"Compare an input or field value on an Element.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"yghniCnvOY2fpX3RJzXm","title":"Check Value Store","pathname":"/test-steps/check/check-value-store","siteSpaceId":"sitesp_BULzg","description":"Check a specific item in the value store.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"dptJOApDu71G9eR3nEI2","title":"Check Attribute","pathname":"/test-steps/check/check-attribute","siteSpaceId":"sitesp_BULzg","description":"Compare an HTML attribute on an Element.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"Oyba5awWHaq6MYRyIe1g","title":"Check Computed Label","pathname":"/test-steps/check/check-computed-label","siteSpaceId":"sitesp_BULzg","description":"Check the computed label on a specific element.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"e823tWVy3yquvmZUOPyR","title":"Check Computed Role","pathname":"/test-steps/check/check-computed-role","siteSpaceId":"sitesp_BULzg","description":"Check the computed role on a specific element.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"KqqgFzLPMOJwdg3HyUgP","title":"Check Computed Style","pathname":"/test-steps/check/check-computed-style","siteSpaceId":"sitesp_BULzg","description":"Check the computed style on a specific element.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"0zK4WhadrnIxr0BZvOjU","title":"Check Count","pathname":"/test-steps/check/check-count","siteSpaceId":"sitesp_BULzg","description":"Compare how many Elements match a selector.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"M5LYzbPnzZ1ZRgy4xScp","title":"Check Title","pathname":"/test-steps/check/check-title","siteSpaceId":"sitesp_BULzg","description":"Compare the current browser tab title.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"tl1crs6GfbAgq4e3AVPn","title":"Check Address","pathname":"/test-steps/check/check-address","siteSpaceId":"sitesp_BULzg","description":"Check the current browser address.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"ApqFjULIG0aXmpkip0nM","title":"Check Cookie","pathname":"/test-steps/check/check-cookie","siteSpaceId":"sitesp_BULzg","description":"Compare a browser cookie value.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"eqd58TntJHkX603Vk8Ft","title":"Check LocalStorage","pathname":"/test-steps/check/check-localstorage","siteSpaceId":"sitesp_BULzg","description":"Compare a localStorage value in the browser.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"cXy2WAO2KxcGqzHF4nic","title":"Check SessionStorage","pathname":"/test-steps/check/check-sessionstorage","siteSpaceId":"sitesp_BULzg","description":"Check the value of a specific session storage key.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"hsEqumk5pbd5tbz8Iluh","title":"Check Links","pathname":"/test-steps/check/check-links","siteSpaceId":"sitesp_BULzg","description":"Verify links on the page return acceptable HTTP status codes.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"lnWSV4HqBUh6h8wVDHos","title":"Check SFTP File Exists","pathname":"/test-steps/check/check-sftp-file-exists","siteSpaceId":"sitesp_BULzg","description":"Confirm a file exists on an SFTP server.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"0fzQJG2MWVFqJZmVMAv4","title":"Check SFTP File Does Not Exist","pathname":"/test-steps/check/check-sftp-file-does-not-exist","siteSpaceId":"sitesp_BULzg","description":"Confirm a file is absent on an SFTP server.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"DY6rB4oWCkDTvR2ryTwr","title":"Check SFTP File Count","pathname":"/test-steps/check/check-sftp-file-count","siteSpaceId":"sitesp_BULzg","description":"Compare how many files are in an SFTP directory.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"RHQd4X1CwPO9kNX0XSvT","title":"Check GTM Event","pathname":"/test-steps/check/check-gtm-event","siteSpaceId":"sitesp_BULzg","description":"Check a specific event or property triggered a GTM event.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"l59VWWQUIlMA0wKjeHZS","title":"Check JSON Value","pathname":"/test-steps/check/check-json-value","siteSpaceId":"sitesp_BULzg","description":"Compare part of a stored JSON value.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"o5CwSXUsz8oHF1lDddpO","title":"Check JSON Schema","pathname":"/test-steps/check/check-json-schema","siteSpaceId":"sitesp_BULzg","description":"Confirm stored JSON matches a JSON Schema.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"s55j5P2YWvuW7561ZQ9k","title":"Check Load Time","pathname":"/test-steps/check/check-load-time","siteSpaceId":"sitesp_BULzg","description":"Check the page load time.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"sn7sQTmj962MKgLn1jMj","title":"Check API Response Time","pathname":"/test-steps/check/check-api-response-time","siteSpaceId":"sitesp_BULzg","description":"Check an API's response time.","breadcrumbs":[{"label":"Test Steps"},{"label":"Check"}]},{"id":"j1YS7RxyRFZSUtxfSUvh","title":"Runner","pathname":"/test-steps/runner","siteSpaceId":"sitesp_BULzg","description":"Wait, switch frames, set headers, and control how the runner executes the Flow.","breadcrumbs":[{"label":"Test Steps"}]},{"id":"vft3eifE299CbH6Mlzog","title":"Pause","pathname":"/test-steps/runner/pause","siteSpaceId":"sitesp_BULzg","description":"Wait for specific number of seconds.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"LtKzql5BDRLaChJwllvq","title":"Wait For Element To Be Displayed","pathname":"/test-steps/runner/wait-for-element-to-be-displayed","siteSpaceId":"sitesp_BULzg","description":"Wait for a specific element to be displayed.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"0KZ393ZSrrHBL0Q2VUf5","title":"Wait For Element To Not Be Displayed","pathname":"/test-steps/runner/wait-for-element-to-not-be-displayed","siteSpaceId":"sitesp_BULzg","description":"Wait for a specific element to not be displayed.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"OpJZLblANMdLLew3kwI1","title":"Wait For Element To Be Visible","pathname":"/test-steps/runner/wait-for-element-to-be-visible","siteSpaceId":"sitesp_BULzg","description":"Wait for a specific element to be visible.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"E2aGPgM0O8fh0Reh7JuD","title":"Wait For Element To Not Be Visible","pathname":"/test-steps/runner/wait-for-element-to-not-be-visible","siteSpaceId":"sitesp_BULzg","description":"Wait for a specific element to not be visible.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"iOMijOrimYSAeGYkHmMi","title":"Wait For Element To Exist","pathname":"/test-steps/runner/wait-for-element-to-exist","siteSpaceId":"sitesp_BULzg","description":"Wait for a specific element to exist.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"hEFDKTokfOLvn6FcrGkA","title":"Wait For Element To Not Exist","pathname":"/test-steps/runner/wait-for-element-to-not-exist","siteSpaceId":"sitesp_BULzg","description":"Wait for a specific element to not exist.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"SMrKWLgzUTU63whmlExs","title":"Wait For Element To Be Enabled","pathname":"/test-steps/runner/wait-for-element-to-be-enabled","siteSpaceId":"sitesp_BULzg","description":"Wait for a specific element to be enabled.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"AQmxTgceBJyx3Ji6tL5V","title":"Wait For Element To Be Disabled","pathname":"/test-steps/runner/wait-for-element-to-be-disabled","siteSpaceId":"sitesp_BULzg","description":"Wait for a specific element to be disabled.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"OIvg0E6LGCZfC4NmFZVM","title":"Wait For Element To Be Clickable","pathname":"/test-steps/runner/wait-for-element-to-be-clickable","siteSpaceId":"sitesp_BULzg","description":"Wait for a specific element to be clickable.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"iR6kef0MRzWYIOj7bxWJ","title":"Wait For Element To Not Be Clickable","pathname":"/test-steps/runner/wait-for-element-to-not-be-clickable","siteSpaceId":"sitesp_BULzg","description":"Wait for a specific element to not be clickable.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"1RcDyfKy7s0nB88RvFvt","title":"Wait For Element Text","pathname":"/test-steps/runner/wait-for-element-text","siteSpaceId":"sitesp_BULzg","description":"Wait for a specific element's inner text to match a condition.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"Vd6PA5iHmryt4vcmJy0a","title":"Switch Window","pathname":"/test-steps/runner/switch-window","siteSpaceId":"sitesp_BULzg","description":"Switch the current browser window.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"ur7J9wItfcmSTfhkZ655","title":"Switch Frame","pathname":"/test-steps/runner/switch-frame","siteSpaceId":"sitesp_BULzg","description":"Move the Test Case focus into an iframe Element.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"xit7SyNpr6H0HivQzQ7V","title":"Switch To Parent Frame","pathname":"/test-steps/runner/switch-to-parent-frame","siteSpaceId":"sitesp_BULzg","description":"Return focus from an iframe to the parent page.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"ACno9wguWVlBQXgsMwtd","title":"Add Header","pathname":"/test-steps/runner/add-header","siteSpaceId":"sitesp_BULzg","description":"Add one HTTP header to the active browser session.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"aigM6znMMLxINiyjFnMW","title":"Set Header","pathname":"/test-steps/runner/set-header","siteSpaceId":"sitesp_BULzg","description":"Replace all HTTP headers on the active browser session.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"6Wt2QJO7tewFzh45V1P9","title":"Remove All Headers","pathname":"/test-steps/runner/remove-all-headers","siteSpaceId":"sitesp_BULzg","description":"Clear every HTTP header from the active browser session.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"ChqBoCr2GVBZ8niiPpai","title":"Stop When Element Is Displayed","pathname":"/test-steps/runner/stop-when-element-is-displayed","siteSpaceId":"sitesp_BULzg","description":"Stop when a specific element is displayed.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"TUDOie8CO6sm8kvK7d9I","title":"Stop When Element Not Displayed","pathname":"/test-steps/runner/stop-when-element-not-displayed","siteSpaceId":"sitesp_BULzg","description":"Stop when a specific element is not displayed.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"WwLM539lruqZf63jhj6I","title":"Stop When Value","pathname":"/test-steps/runner/stop-when-value","siteSpaceId":"sitesp_BULzg","description":"Stop when a value matches a specific condition.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"sZEA0Ov27GoZybVoHjJn","title":"Generate File","pathname":"/test-steps/runner/generate-file","siteSpaceId":"sitesp_BULzg","description":"Generate a text, PDF, JSON, or Excel file at run time for upload or open Flows.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"iiec9SSFCgSbpggxo1Cz","title":"Generate Image","pathname":"/test-steps/runner/generate-image","siteSpaceId":"sitesp_BULzg","description":"Generate a JPEG or PNG image at run time for upload or webcam Flows.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"hdgwDX9BkTsEHt7qNYS6","title":"Condition","pathname":"/test-steps/runner/condition","siteSpaceId":"sitesp_BULzg","description":"Include a Flow Branch only when a Runner, device, language, timezone, or Value matches.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"KJeaSVPd7DksauJ3DFPW","title":"Set Webcam","pathname":"/test-steps/runner/set-webcam","siteSpaceId":"sitesp_BULzg","description":"Set the webcam stream from a default, downloaded, or generated image.","breadcrumbs":[{"label":"Test Steps"},{"label":"Runner"}]},{"id":"PWPYQn6Om99drkrlPNwt","title":"Vision","pathname":"/test-steps/vision","siteSpaceId":"sitesp_BULzg","description":"Check what is on screen with AI, snapshots, or position baselines.","breadcrumbs":[{"label":"Test Steps"}]},{"id":"Dxpwlbk4zGYrwE7a5u83","title":"AI Vision","pathname":"/test-steps/vision/ai-vision","siteSpaceId":"sitesp_BULzg","description":"Check the page or an Element against a written visual expectation.","breadcrumbs":[{"label":"Test Steps"},{"label":"Vision"}]},{"id":"b5pIk6SWN5RfutJiBCVE","title":"Element Snapshot","pathname":"/test-steps/vision/element-snapshot","siteSpaceId":"sitesp_BULzg","description":"Detect visual differences between the current run and a control.","breadcrumbs":[{"label":"Test Steps"},{"label":"Vision"}]},{"id":"yLYqp8CY8AUiqFd2bkxD","title":"Element Position","pathname":"/test-steps/vision/element-position","siteSpaceId":"sitesp_BULzg","description":"Detect positional differences between the current run and a control.","breadcrumbs":[{"label":"Test Steps"},{"label":"Vision"}]},{"id":"qthVHxDGbxWEGxFKxhdA","title":"Mail","pathname":"/test-steps/mail","siteSpaceId":"sitesp_BULzg","description":"Open a test inbox, wait for messages, and read email as part of a Flow.","breadcrumbs":[{"label":"Test Steps"}]},{"id":"fNfBjGGHAMAU0G0yHlA8","title":"Open Inbox","pathname":"/test-steps/mail/open-inbox","siteSpaceId":"sitesp_BULzg","description":"Open the Test Case or Account inbox in the browser.","breadcrumbs":[{"label":"Test Steps"},{"label":"Mail"}]},{"id":"lNMZvm1ffJCWIOUinYwZ","title":"Close Inbox","pathname":"/test-steps/mail/close-inbox","siteSpaceId":"sitesp_BULzg","description":"Close open DoesQA inboxes in the Test Runner browser.","breadcrumbs":[{"label":"Test Steps"},{"label":"Mail"}]},{"id":"1S4bexTWPrSxSMDjRHnT","title":"Select Email","pathname":"/test-steps/mail/select-email","siteSpaceId":"sitesp_BULzg","description":"Select a message in an open inbox without opening it.","breadcrumbs":[{"label":"Test Steps"},{"label":"Mail"}]},{"id":"NRNUAjvXHZC3ucGm9fdb","title":"Open Email","pathname":"/test-steps/mail/open-email","siteSpaceId":"sitesp_BULzg","description":"Open a message so you can read links and content in the email view.","breadcrumbs":[{"label":"Test Steps"},{"label":"Mail"}]},{"id":"f789wk4KOrTicU9dkpUe","title":"Wait For Email","pathname":"/test-steps/mail/wait-for-email","siteSpaceId":"sitesp_BULzg","description":"Wait until a matching email arrives in a DoesQA inbox.","breadcrumbs":[{"label":"Test Steps"},{"label":"Mail"}]},{"id":"TVTomsoZ7nNb28XWQIiH","title":"Validator","pathname":"/test-steps/validator","siteSpaceId":"sitesp_BULzg","description":"Run accessibility, performance, SEO, and other quality checks in a Flow.","breadcrumbs":[{"label":"Test Steps"}]},{"id":"H7q9X39a58UYvTckREYs","title":"Accessibility","pathname":"/test-steps/validator/accessibility","siteSpaceId":"sitesp_BULzg","description":"Check the Google Lighthouse Accessibility score.","breadcrumbs":[{"label":"Test Steps"},{"label":"Validator"}]},{"id":"NEIedbKHltjZwgWi7auZ","title":"Performance","pathname":"/test-steps/validator/performance","siteSpaceId":"sitesp_BULzg","description":"Check the Google Lighthouse Performance score.","breadcrumbs":[{"label":"Test Steps"},{"label":"Validator"}]},{"id":"neeVK4cee6FHUisBY1eC","title":"Best Practices","pathname":"/test-steps/validator/best-practices","siteSpaceId":"sitesp_BULzg","description":"Check the Google Lighthouse Best Practice score.","breadcrumbs":[{"label":"Test Steps"},{"label":"Validator"}]},{"id":"0cKi85hsSEGp5xJVozRW","title":"SEO","pathname":"/test-steps/validator/seo","siteSpaceId":"sitesp_BULzg","description":"Check the Google Lighthouse SEO score.","breadcrumbs":[{"label":"Test Steps"},{"label":"Validator"}]},{"id":"XkzoQYACX045mClnqS7b","title":"PWA","pathname":"/test-steps/validator/pwa","siteSpaceId":"sitesp_BULzg","description":"Check the Google Lighthouse PWA (Progressive Web App) score.","breadcrumbs":[{"label":"Test Steps"},{"label":"Validator"}]},{"id":"yXQt4ikwmDu8O7WlcZin","title":"Pa11y","pathname":"/test-steps/validator/pa11y","siteSpaceId":"sitesp_BULzg","description":"Check accessibility conformance.","breadcrumbs":[{"label":"Test Steps"},{"label":"Validator"}]},{"id":"iuszViVGZzTYTwvvCvzV","title":"Axe","pathname":"/test-steps/validator/axe","siteSpaceId":"sitesp_BULzg","description":"Check accessibility conformance.","breadcrumbs":[{"label":"Test Steps"},{"label":"Validator"}]},{"id":"fJh13daZfH3xg43Fuail","title":"Data","pathname":"/test-steps/data","siteSpaceId":"sitesp_BULzg","description":"Save, transform, and apply Values, cookies, and browser storage during a Flow.","breadcrumbs":[{"label":"Test Steps"}]},{"id":"nE9hXLczQqcip1nk3zWS","title":"Alias Value","pathname":"/test-steps/data/alias-value","siteSpaceId":"sitesp_BULzg","description":"Copy a Value Store item under a second name.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"4wqnQEqLID3J0d31S4c9","title":"Set Value","pathname":"/test-steps/data/set-value","siteSpaceId":"sitesp_BULzg","description":"Write a Value into storage for later steps in the Test Case or account.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"QpmkmyxvE5i6bMAjzVrQ","title":"Store Element Text","pathname":"/test-steps/data/store-element-text","siteSpaceId":"sitesp_BULzg","description":"Save an Element’s visible text into a storage name.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"Qvtutp8cUeHhfEKi31Ro","title":"Store Element HTML","pathname":"/test-steps/data/store-element-html","siteSpaceId":"sitesp_BULzg","description":"Save the inner HTML from a specific element into the value store.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"vaCMAKnvXXlbwEhowKHm","title":"Store Element Value","pathname":"/test-steps/data/store-element-value","siteSpaceId":"sitesp_BULzg","description":"Save the value from a specific element into the value store.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"HY30N8PyzDSHunwmCkQU","title":"Store Element Count","pathname":"/test-steps/data/store-element-count","siteSpaceId":"sitesp_BULzg","description":"Save the count of elements returned from a specific element selector into the value store.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"S3sYO6XkPfDHQN9jGSG3","title":"Store Element Attribute","pathname":"/test-steps/data/store-element-attribute","siteSpaceId":"sitesp_BULzg","description":"Save an attribute value from a specific element into the value store.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"O96gr08J3j2byE7ORx7L","title":"Set Cookie","pathname":"/test-steps/data/set-cookie","siteSpaceId":"sitesp_BULzg","description":"Set a browser cookie.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"BQ2xHjbGFUKcpDjLSKHN","title":"Store Cookie","pathname":"/test-steps/data/store-cookie","siteSpaceId":"sitesp_BULzg","description":"Save a browser cookie into the Value Store.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"3wnguKAifZR9eDa0FFOB","title":"Delete Cookie","pathname":"/test-steps/data/delete-cookie","siteSpaceId":"sitesp_BULzg","description":"Delete a specific browser cookie.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"nMhITGF962lp0hXtpg3W","title":"Delete Cookies","pathname":"/test-steps/data/delete-cookies","siteSpaceId":"sitesp_BULzg","description":"Delete all browser cookies.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"Gd6CLgDJeZZaCz7MwrOM","title":"Set LocalStorage","pathname":"/test-steps/data/set-localstorage","siteSpaceId":"sitesp_BULzg","description":"Write a key and value into browser localStorage.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"vUz8VnaZVhWxFrfinf20","title":"Store LocalStorage","pathname":"/test-steps/data/store-localstorage","siteSpaceId":"sitesp_BULzg","description":"Store the value of a specific local storage item in the Value Store.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"KkmFlvcOkwKrzzT0Ncya","title":"Delete LocalStorage","pathname":"/test-steps/data/delete-localstorage","siteSpaceId":"sitesp_BULzg","description":"Delete a specific browser local storage item.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"krbhYVgph6sg83f1UxxJ","title":"Delete All LocalStorage","pathname":"/test-steps/data/delete-all-localstorage","siteSpaceId":"sitesp_BULzg","description":"Delete all browser local storage items.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"wW2u6sd5B1QRT2dRBWLR","title":"Set SessionStorage","pathname":"/test-steps/data/set-sessionstorage","siteSpaceId":"sitesp_BULzg","description":"Set a browser session storage item.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"q6p24pfsmWf2PwpgoZU4","title":"Store SessionStorage","pathname":"/test-steps/data/store-sessionstorage","siteSpaceId":"sitesp_BULzg","description":"Store the value of a specific session storage item in the Value Store.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"my4QNIh5pz5FBBPHWhFe","title":"Delete SessionStorage","pathname":"/test-steps/data/delete-sessionstorage","siteSpaceId":"sitesp_BULzg","description":"Delete a specific browser session storage item.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"mKCq5Ok9Xs4SvX1oOBNa","title":"Delete All SessionStorage","pathname":"/test-steps/data/delete-all-sessionstorage","siteSpaceId":"sitesp_BULzg","description":"Delete all browser session storage items.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"hWzumVlgWQ1T31CWmp7V","title":"Calculate Value","pathname":"/test-steps/data/calculate-value","siteSpaceId":"sitesp_BULzg","description":"Run a calculation and store the result in the Value Store.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"zvMbHZZzBgN2u6rbnhRY","title":"Replace Value","pathname":"/test-steps/data/replace-value","siteSpaceId":"sitesp_BULzg","description":"Find and replace inside a value store item.","breadcrumbs":[{"label":"Test Steps"},{"label":"Data"}]},{"id":"rpymxIOMukRdrMNUfCAQ","title":"Express","pathname":"/test-steps/express","siteSpaceId":"sitesp_BULzg","description":"Complete common checkout and nested-run tasks with a single Test Step.","breadcrumbs":[{"label":"Test Steps"}]},{"id":"moY6SVM1lFt69u9HmJjR","title":"DoesQA Run","pathname":"/test-steps/express/doesqa-run","siteSpaceId":"sitesp_BULzg","description":"Start another DoesQA Run from a parent Flow.","breadcrumbs":[{"label":"Test Steps"},{"label":"Express"}]},{"id":"f9sSRBMQsrV9RvZ7nc0S","title":"Adyen Widget","pathname":"/test-steps/express/adyen-widget","siteSpaceId":"sitesp_BULzg","description":"Fill in a complete Adyen card checkout form with a single Test Step.","breadcrumbs":[{"label":"Test Steps"},{"label":"Express"}]},{"id":"9opoLOxP91dnQEzYNHP5","title":"Adyen PayPal","pathname":"/test-steps/express/adyen-paypal","siteSpaceId":"sitesp_BULzg","description":"Complete the Adyen paypal process with a single Test Step.","breadcrumbs":[{"label":"Test Steps"},{"label":"Express"}]},{"id":"7DTQpm8NVuEi8jP63o2v","title":"Integration","pathname":"/test-steps/integration","siteSpaceId":"sitesp_BULzg","description":"Call APIs, work with SFTP, or send Slack messages from inside a Flow.","breadcrumbs":[{"label":"Test Steps"}]},{"id":"ap0RoMOlG08K81EAMTqZ","title":"SFTP List","pathname":"/test-steps/integration/sftp-list","siteSpaceId":"sitesp_BULzg","description":"List files or folders on an SFTP server and store the response.","breadcrumbs":[{"label":"Test Steps"},{"label":"Integration"}]},{"id":"8pTcQv8bCH5yIdAfleVJ","title":"GET","pathname":"/test-steps/integration/get","siteSpaceId":"sitesp_BULzg","description":"Send an API GET request and store the response as a Value.","breadcrumbs":[{"label":"Test Steps"},{"label":"Integration"}]},{"id":"JZzERnICX6sQLhdnvb8a","title":"PUT","pathname":"/test-steps/integration/put","siteSpaceId":"sitesp_BULzg","description":"Perform a API PUT request and store the returned value.","breadcrumbs":[{"label":"Test Steps"},{"label":"Integration"}]},{"id":"owFzTFDRvJDVeVhzYC9S","title":"POST","pathname":"/test-steps/integration/post","siteSpaceId":"sitesp_BULzg","description":"Send an API POST request with an optional body and store the response.","breadcrumbs":[{"label":"Test Steps"},{"label":"Integration"}]},{"id":"iT3zlMIx5pHl01o5bvqW","title":"PATCH","pathname":"/test-steps/integration/patch","siteSpaceId":"sitesp_BULzg","description":"Perform a API PATCH request and store the returned value.","breadcrumbs":[{"label":"Test Steps"},{"label":"Integration"}]},{"id":"sEH8zUygCIOHVFsCr1SL","title":"DELETE","pathname":"/test-steps/integration/delete","siteSpaceId":"sitesp_BULzg","description":"Perform a API DELETE request and store the returned value.","breadcrumbs":[{"label":"Test Steps"},{"label":"Integration"}]},{"id":"VVEmFqkexFj6DnnLO6lw","title":"Slack Send","pathname":"/test-steps/integration/slack-send","siteSpaceId":"sitesp_BULzg","description":"Send a message to a specific slack channel.","breadcrumbs":[{"label":"Test Steps"},{"label":"Integration"}]},{"id":"R3VQ5cmM1TFDYr6AbKmC","title":"SFTP Upload","pathname":"/test-steps/integration/sftp-upload","siteSpaceId":"sitesp_BULzg","description":"Upload a generated file to an SFTP server.","breadcrumbs":[{"label":"Test Steps"},{"label":"Integration"}]},{"id":"eCjcsx0gxp3GllcL6F3t","title":"Utilities","pathname":"/test-steps/utility","siteSpaceId":"sitesp_BULzg","description":"Name branches, add comments, take screenshots, and attach debug output to results.","breadcrumbs":[{"label":"Test Steps"}]},{"id":"xFUjYGQsDdjEQfzp6rXE","title":"Flow Comment","pathname":"/test-steps/utility/flow-comment","siteSpaceId":"sitesp_BULzg","description":"Add a note on the Flow canvas for other builders.","breadcrumbs":[{"label":"Test Steps"},{"label":"Utilities"}]},{"id":"imrTfJK35EDkiWEjqzAL","title":"Test Comment","pathname":"/test-steps/utility/test-comment","siteSpaceId":"sitesp_BULzg","description":"Add a note to the current Test Case branch in results.","breadcrumbs":[{"label":"Test Steps"},{"label":"Utilities"}]},{"id":"N2dJQFIBS3txKH1sj0aW","title":"Name Test","pathname":"/test-steps/utility/name-test","siteSpaceId":"sitesp_BULzg","description":"Give the current Test Case branch a clear name in results.","breadcrumbs":[{"label":"Test Steps"},{"label":"Utilities"}]},{"id":"CrIb7fimNmMh8nGIl721","title":"Debug Value","pathname":"/test-steps/utility/debug-value","siteSpaceId":"sitesp_BULzg","description":"Record a Value Store item in the Test Case result.","breadcrumbs":[{"label":"Test Steps"},{"label":"Utilities"}]},{"id":"9pjdChLceQSQlVKpQKog","title":"Debug Element","pathname":"/test-steps/utility/debug-element","siteSpaceId":"sitesp_BULzg","description":"Record Element details in the Test Case result.","breadcrumbs":[{"label":"Test Steps"},{"label":"Utilities"}]},{"id":"lSWgXmJBYgco562sHF35","title":"Test Response","pathname":"/test-steps/utility/test-response","siteSpaceId":"sitesp_BULzg","description":"Attach a text or Value message to the Test Case result.","breadcrumbs":[{"label":"Test Steps"},{"label":"Utilities"}]},{"id":"ruGIf83kmXJLLgcm1OXF","title":"Replace Text","pathname":"/test-steps/utility/replace-text","siteSpaceId":"sitesp_BULzg","description":"Replace all the text on a page or inside and element.","breadcrumbs":[{"label":"Test Steps"},{"label":"Utilities"}]},{"id":"zYDazDS3EAtlHXtyQGg3","title":"Screenshot","pathname":"/test-steps/utility/screenshot","siteSpaceId":"sitesp_BULzg","description":"Capture a viewport or full-page screenshot in the Test Case result.","breadcrumbs":[{"label":"Test Steps"},{"label":"Utilities"}]},{"id":"TNRhCUoeobubCuZeWDkr","title":"Tag Test","pathname":"/test-steps/utility/tag-test","siteSpaceId":"sitesp_BULzg","description":"Tag a Flow Branch so filters and recipes can include or skip that Test Case.","breadcrumbs":[{"label":"Test Steps"},{"label":"Utilities"}]},{"id":"0mactrOeqBRCTOh2Jfkm","title":"Start HAR Recording","pathname":"/test-steps/utility/start-har-recording","siteSpaceId":"sitesp_BULzg","description":"Start capturing network traffic in a HAR recording for later review.","breadcrumbs":[{"label":"Test Steps"},{"label":"Utilities"}]},{"id":"agNtkeS8xpm9AkigE5y9","title":"End HAR Recording","pathname":"/test-steps/utility/end-har-recording","siteSpaceId":"sitesp_BULzg","description":"Stop an active HAR recording and keep the captured network traffic.","breadcrumbs":[{"label":"Test Steps"},{"label":"Utilities"}]},{"id":"wzH990EWTIyDWxRQO52R","title":"Start Console Recording","pathname":"/test-steps/utility/start-console-recording","siteSpaceId":"sitesp_BULzg","description":"Start capturing browser console output for later review.","breadcrumbs":[{"label":"Test Steps"},{"label":"Utilities"}]},{"id":"LnLJ1uzP1beFaGBlg6vl","title":"End Console Recording","pathname":"/test-steps/utility/end-console-recording","siteSpaceId":"sitesp_BULzg","description":"Stop an active console recording and keep the captured browser logs.","breadcrumbs":[{"label":"Test Steps"},{"label":"Utilities"}]},{"id":"oSAbOluyIWA9mjioZY5y","title":"Step Group","pathname":"/test-steps/step-group","siteSpaceId":"sitesp_BULzg","description":"Reuse a set of Test Steps as one Step Group in a Flow.","breadcrumbs":[{"label":"Test Steps"}]},{"id":"Jjq2tZXkj3FbfN3StFMj","title":"Element states","pathname":"/test-step-options/element-states","siteSpaceId":"sitesp_BULzg","description":"Learn what Exists, Displayed, Visible, Enabled, and Clickable mean for Elements.","breadcrumbs":[{"label":"Test Step Options"}]},{"id":"njtK2TPctCzMgmuf6Amr","title":"Comparison Type","pathname":"/test-step-options/comparison-type","siteSpaceId":"sitesp_BULzg","description":"Comparison types allow you to finely control comparisons.","breadcrumbs":[{"label":"Test Step Options"}]},{"id":"GgFilGcTVDsy3AY4wgmG","title":"Value Standardization","pathname":"/test-step-options/value-standardization","siteSpaceId":"sitesp_BULzg","description":"Standardize your the values prior to performing comparisons.","breadcrumbs":[{"label":"Test Step Options"}]},{"id":"WzLxrCf2ysOEgRcqUPqC","title":"Failed Status","pathname":"/test-step-options/failed-status","siteSpaceId":"sitesp_BULzg","description":"Choose what status a Test Step reports when it fails.","breadcrumbs":[{"label":"Test Step Options"}]},{"id":"51cVtC38z1Np3YHKOpKl","title":"Timeout Override","pathname":"/test-step-options/timeout-override","siteSpaceId":"sitesp_BULzg","description":"Adjust how long a step is allowed to run before timing out.","breadcrumbs":[{"label":"Test Step Options"}]},{"id":"ZBEIQma2O1M4euvvdzTx","title":"Creating Elements","pathname":"/elements/creating-elements","siteSpaceId":"sitesp_BULzg","description":"Create reusable Elements from a Test Step or Assets, with Automatic Description or Manual Selectors.","breadcrumbs":[{"label":"Elements"}]},{"id":"1UUunk6HMG28VmgOJGQE","title":"Selector Types","pathname":"/elements/selector-types","siteSpaceId":"sitesp_BULzg","description":"Choose CSS, XPath, Visible Text, or Test ID to find Elements on the page.","breadcrumbs":[{"label":"Elements"}]},{"id":"SYczKhdsyBrSmxF0RsXp","title":"CSS","pathname":"/elements/selector-types/css","siteSpaceId":"sitesp_BULzg","description":"Use CSS selectors to locate elements based on their styling properties and structure in the DOM.","breadcrumbs":[{"label":"Elements"},{"label":"Selector Types"}]},{"id":"FGdEV3i2qHQMu7kbzf5y","title":"Shadow DOM","pathname":"/elements/selector-types/shadow-dom","siteSpaceId":"sitesp_BULzg","description":"Find Elements inside Shadow DOM by prefixing a CSS Selector with >>>.","breadcrumbs":[{"label":"Elements"},{"label":"Selector Types"}]},{"id":"0tPtG9Fnlg5eX8rsaV9h","title":"XPath","pathname":"/elements/selector-types/xpath","siteSpaceId":"sitesp_BULzg","description":"Use XPath expressions to navigate and select elements within the XML or HTML document.","breadcrumbs":[{"label":"Elements"},{"label":"Selector Types"}]},{"id":"iKZexOOZ8da03iKFlLNm","title":"Visible Text","pathname":"/elements/selector-types/visible-text","siteSpaceId":"sitesp_BULzg","description":"Locate elements based on the visible text they contain. This is matched without case sensitivity.","breadcrumbs":[{"label":"Elements"},{"label":"Selector Types"}]},{"id":"mOHhp92CL8YBejOx1HgH","title":"Test ID","pathname":"/elements/selector-types/test-id","siteSpaceId":"sitesp_BULzg","description":"Locate elements using custom Test ID attributes added specifically for testing.","breadcrumbs":[{"label":"Elements"},{"label":"Selector Types"}]},{"id":"p59bVRkD8BbZkOFNt69E","title":"Value Store","pathname":"/values/value-store","siteSpaceId":"sitesp_BULzg","description":"Account Values, overwrites, built-ins, and which source wins when names match.","breadcrumbs":[{"label":"Values"}]},{"id":"VXY9ifHrYArzHKaBYajy","title":"Creating Values","pathname":"/values/creating-values","siteSpaceId":"sitesp_BULzg","description":"Create account Values in Assets, set types, and capture data during a Run.","breadcrumbs":[{"label":"Values"}]},{"id":"mBxDO045Ugjwfj5pm6pA","title":"Built-in Values","pathname":"/values/built-in-values","siteSpaceId":"sitesp_BULzg","description":"A number of useful Values are provided at run time.","breadcrumbs":[{"label":"Values"}]},{"id":"W17BCNYt0r4qcMERSmIL","title":"Runs","pathname":"/runs/runs","siteSpaceId":"sitesp_BULzg","description":"What a Run is, how it relates to Flows and Test Cases, and where to find results.","breadcrumbs":[{"label":"Runs"}]},{"id":"PoqvOvWfP8SsIdaA9H1X","title":"Start a Run","pathname":"/runs/start-a-run","siteSpaceId":"sitesp_BULzg","description":"Start a single Flow, a Test Pack, a Recipe, a Schedule, or a CI/CD Run.","breadcrumbs":[{"label":"Runs"}]},{"id":"6M3sbQlqpSZyY7688XTy","title":"Run History and Run detail","pathname":"/runs/run-history-and-detail","siteSpaceId":"sitesp_BULzg","description":"Read Run History, open a Run, terminate it, or rerun changed and failed tests.","breadcrumbs":[{"label":"Runs"}]},{"id":"Ttf89M1cbv6cbvdIT4AB","title":"Whitelisting IPs","pathname":"/configuration/whitelisting-ips","siteSpaceId":"sitesp_BULzg","description":"Allow DoesQA runners and support through your firewall with the published IP addresses.","breadcrumbs":[{"label":"Configuration"}]},{"id":"D5OvsOFk8f4KPMvPE3Xb","title":"Max Concurrency","pathname":"/configuration/max-concurrency","siteSpaceId":"sitesp_BULzg","description":"Control how many test cases run in parallel.","breadcrumbs":[{"label":"Configuration"}]},{"id":"zK6mwQVuupmrgvsONTOS","title":"CI / CD","pathname":"/configuration/ci-cd","siteSpaceId":"sitesp_BULzg","description":"Manage CI/CD webhook keys and options under Settings → CI/CD.","breadcrumbs":[{"label":"Configuration"}]},{"id":"qXY1HUU1OXtT7RXBTquQ","title":"Schedules","pathname":"/configuration/schedules","siteSpaceId":"sitesp_BULzg","description":"Run Flows automatically on a recurring UTC schedule.","breadcrumbs":[{"label":"Configuration"}]},{"id":"k1eP8Felysm3qoufSYh3","title":"Block Hostnames","pathname":"/configuration/block-hostnames","siteSpaceId":"sitesp_BULzg","description":"Block third-party hostnames during Runs so popups and scripts stay out of the page.","breadcrumbs":[{"label":"Configuration"}]},{"id":"DH8o0VCGcMhfX6CxY2Qh","title":"Notifications","pathname":"/configuration/notifications","siteSpaceId":"sitesp_BULzg","description":"Send Run results to email, Slack, Microsoft Teams, or a webhook.","breadcrumbs":[{"label":"Configuration"}]},{"id":"saqRYbkZm0vJ3s3Bs4G8","title":"Webhook","pathname":"/configuration/notifications/webhook","siteSpaceId":"sitesp_BULzg","description":"Trigger remote tooling straight out of DoesQA.","breadcrumbs":[{"label":"Configuration"},{"label":"Notifications"}]},{"id":"klQgGF09K12iAB2SXYxh","title":"Email","pathname":"/configuration/notifications/email","siteSpaceId":"sitesp_BULzg","description":"Email your team when a Run finishes.","breadcrumbs":[{"label":"Configuration"},{"label":"Notifications"}]},{"id":"Cf4TXz4lJmYniRIhDf1N","title":"Slack","pathname":"/configuration/notifications/slack","siteSpaceId":"sitesp_BULzg","description":"Configure Slack notification rules under Settings → Notifications.","breadcrumbs":[{"label":"Configuration"},{"label":"Notifications"}]},{"id":"RhtnIWI4LWvHFR4Aux63","title":"Microsoft Teams","pathname":"/configuration/notifications/teams","siteSpaceId":"sitesp_BULzg","description":"Configure Microsoft Teams notification rules under Settings → Notifications.","breadcrumbs":[{"label":"Configuration"},{"label":"Notifications"}]},{"id":"dhs1x4tUQ9PGvWYZM11t","title":"MFA","pathname":"/configuration/mfa","siteSpaceId":"sitesp_BULzg","description":"Save MFA secrets and use them to generate codes in your Flows.","breadcrumbs":[{"label":"Configuration"}]},{"id":"fP5BxZ9u6s7Tx6KNGdfX","title":"Run Recipes","pathname":"/configuration/run-recipes","siteSpaceId":"sitesp_BULzg","description":"Save Flow filters and Value overwrites so you can start the same Run again.","breadcrumbs":[{"label":"Configuration"}]},{"id":"KYa17fyO7bNKHHbYajj8","title":"Codeless vs coded test automation","pathname":"/choosing-a-test-automation-approach/codeless-vs-coded","siteSpaceId":"sitesp_BULzg","description":"When DoesQA fits versus a coded framework, what you still need alongside end-to-end coverage, and how support sits with the product.","breadcrumbs":[{"label":"Choosing a test automation approach"}]},{"id":"67HngihmdnETtuPDn5wq","title":"DoesQA, Playwright, Cypress, and Selenium compared","pathname":"/choosing-a-test-automation-approach/doesqa-compared","siteSpaceId":"sitesp_BULzg","description":"Compare DoesQA with Playwright, Cypress, and Selenium: full product vs coded frameworks, journey coverage, and the hidden costs of free tools.","breadcrumbs":[{"label":"Choosing a test automation approach"}]},{"id":"6wmQocyCZtju6noclIgL","title":"Maintenance and reliability","pathname":"/choosing-a-test-automation-approach/maintenance-and-reliability","siteSpaceId":"sitesp_BULzg","description":"How DoesQA keeps maintenance low, stays resilient when the UI changes, and delivers reliable Run results you can trust.","breadcrumbs":[{"label":"Choosing a test automation approach"}]},{"id":"IHnqgXkH3kYS9BQKRMVe","title":"Security and trust","pathname":"/choosing-a-test-automation-approach/security-and-trust","siteSpaceId":"sitesp_BULzg","description":"How DoesQA handles security, credentials, production testing, GDPR, and enterprise trust as one operated platform.","breadcrumbs":[{"label":"Choosing a test automation approach"}]},{"id":"FNvXJgdWLmfDyXsSE79J","title":"Coverage and speed","pathname":"/choosing-a-test-automation-approach/coverage-and-speed","siteSpaceId":"sitesp_BULzg","description":"How DoesQA covers real user journeys and product capabilities end to end, and how fast a regression suite can run on hosted runners.","breadcrumbs":[{"label":"Choosing a test automation approach"}]}]}