# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json description: 'Calculator demo for browser automation' prompts: - 'Calculate {{num1}} {{operation}} {{num2}}' providers: - id: browser config: headless: false # See the browser in action steps: # Navigate to the demo - action: navigate args: url: 'http://localhost:7860' # Wait for initial page load - action: wait args: ms: 3000 # Navigate to calculator tab - action: click args: selector: 'button[role="tab"]:nth-child(2)' # Wait for tab to load - action: wait args: ms: 2000 # Enter numbers and perform calculation - action: type args: selector: '#num1 input' text: '{{num1}}' - action: type args: selector: '#num2 input' text: '{{num2}}' # Select operation - action: click args: selector: '{{operationSelector}}' # Perform calculation - action: click args: selector: '#calculate' # Wait for calculation - action: wait args: ms: 2000 # Extract entire result area for debugging - action: extract args: selector: '#result' name: resultArea # For demo purposes, we'll just check that we got something transformResponse: 'extracted.resultArea && extracted.resultArea.includes("Result") ? "Calculator interaction successful" : "No result found"' # Simple demo tests tests: - vars: num1: '10' num2: '5' operation: Add operationSelector: '#operation label:nth-child(1)' assert: - type: contains value: 'successful' - vars: num1: '20' num2: '4' operation: Multiply operationSelector: '#operation label:nth-child(3)' assert: - type: contains value: 'successful'