or run

npx @tessl/cli init
Log in

Version

Files

docs

browser-contexts.mdbrowser-management.mdelement-handling.mdindex.mdinput-simulation.mdlocators-selectors.mdnetwork-management.mdpage-interaction.md
tile.json

rubric.jsonevals/scenario-5/

{
  "context": "This criteria evaluates how effectively the engineer uses puppeteer-core's frame navigation and interaction API to traverse iframe hierarchies, access frame properties, and build a structured representation of the frame tree.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Browser launch",
      "description": "Uses puppeteer.launch() or puppeteer.connect() to initialize a browser instance",
      "max_score": 5
    },
    {
      "name": "Page navigation",
      "description": "Uses page.goto() to navigate to the provided URL",
      "max_score": 5
    },
    {
      "name": "Main frame access",
      "description": "Uses page.mainFrame() to access the primary frame of the page",
      "max_score": 10
    },
    {
      "name": "Child frame enumeration",
      "description": "Uses frame.childFrames() to retrieve all child frames of a given frame",
      "max_score": 20
    },
    {
      "name": "Frame URL retrieval",
      "description": "Uses frame.url() to get the URL of each frame",
      "max_score": 15
    },
    {
      "name": "Frame title retrieval",
      "description": "Uses frame.title() to get the title of each frame",
      "max_score": 15
    },
    {
      "name": "Frame name retrieval",
      "description": "Uses frame.name() to get the name or identifier of each frame",
      "max_score": 10
    },
    {
      "name": "Recursive traversal",
      "description": "Implements recursive logic to traverse nested frames at all depth levels using the frame API methods",
      "max_score": 15
    },
    {
      "name": "Browser cleanup",
      "description": "Uses browser.close() to properly close the browser instance after processing",
      "max_score": 5
    }
  ]
}