4. Error Handling & Defensive Scripting

Defensive Automation Patterns

try {
  await page.getByRole("button", { name: "Accept Cookies" }).click({ timeout: 2000 });
} catch (error) {
  // Cookie banner didn't appear; safely continue
  console.log("No cookie banner displayed");
}

// Optional chaining & nullish coalescing:
const timeout = config?.timeouts?.element ?? 5000;

Task

  • Implement safeGetConfigTimeout:
  • 1. Accept config object.
  • 2. Return config?.timeout ?? 5000.
πŸ’‘Common doubts
Did you like the problem?
Lesson 4 of 18
JavaScript
Loading code editor…
Next