Commit Graph

602 Commits

Author SHA1 Message Date
Magnus Müller f09df1a326 Add DOM serializer test with shadow DOM, iframes, and click functionality
- Tests DOM serializer extracts elements from:
  - Regular DOM (buttons, inputs, links)
  - Shadow DOM (elements inside shadow roots)
  - Same-origin iframes
  - Cross-origin iframes
- Tests clicking elements using tools.click(index) for each category
- Test fails if clicks don't work (currently failing - needs fix)
- Verifies 12 total interactive elements are found

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 17:34:50 -07:00
Magnus Müller f57a350098 Add integration tests for screenshot functionality in the agent with vision enabled. This includes setting up a mock HTTP server for testing, capturing screenshots during navigation, and verifying the existence and content of the captured screenshots in the agent's history. 2025-10-26 17:12:11 -07:00
Magnus Müller 0ad363cb29 Tab test 2025-10-26 17:05:00 -07:00
Magnus Müller f29be2aa58 Change browser session fixture scope from 'module' to 'function' in navigation tests for improved isolation and reliability. 2025-10-26 16:39:51 -07:00
Magnus Müller 135664432c Broken nav 2025-10-26 16:35:01 -07:00
Magnus Müller 3a1db137bb api key not required 2025-10-25 18:00:18 -07:00
Magnus Müller 9313097a84 Remove openrouter 2025-10-25 10:27:06 -07:00
Magnus Müller 16d8833048 Api key rename 2025-10-25 10:24:40 -07:00
Magnus Müller 3742377fa3 Linter 2025-10-25 10:20:40 -07:00
Magnus Müller f60fedb01d Env 2025-10-25 10:20:31 -07:00
Magnus Müller 6e31a05acd Split model tests 2025-10-25 10:16:46 -07:00
Magnus Müller 5b481ac5ee Linter 2025-10-25 09:59:37 -07:00
Magnus Müller ba79f4df88 Linter 2025-10-25 09:59:30 -07:00
Magnus Müller a991e19d75 Remove some models 2025-10-25 09:58:59 -07:00
Magnus Müller a8cb8bae12 Remove deepseek 2025-10-25 09:56:38 -07:00
Magnus Müller 19df83f7ab Linter 2025-10-25 09:51:07 -07:00
Magnus Müller 8ac418b17f No api key fails in github 2025-10-25 09:50:59 -07:00
Magnus Müller c342442a0b Linter 2025-10-25 09:38:28 -07:00
Magnus Müller 8a76853837 Basic model test 2025-10-25 09:36:56 -07:00
Magnus Müller 4db51f9e24 Ci cd test update 2025-10-25 09:12:15 -07:00
Magnus Müller c1982936c9 Organize tests 2025-10-25 09:09:54 -07:00
Magnus Müller 90e4569125 Remove old 2025-10-25 08:46:40 -07:00
Magnus Müller 22b24723bf Cache 2025-10-24 23:53:56 -07:00
Magnus Müller 17db15320d Cloud browser 2025-10-24 23:53:50 -07:00
Magnus Müller a00a999bdc Remove sleep 2025-10-24 23:47:36 -07:00
Magnus Müller 8d3f30da80 Patch api key 2025-10-24 23:47:01 -07:00
Magnus Müller 56badd6ca8 Move to interaction tests 2025-10-24 23:45:13 -07:00
Magnus Müller 763a7b325b Remove more 2025-10-24 23:43:17 -07:00
Magnus Müller 01dd419eaf Remove event tests because inside tools 2025-10-24 23:36:41 -07:00
Magnus Müller b36b85715d Longer wait in actor press 2025-10-24 23:36:27 -07:00
Magnus Müller daa74ddcfe Tests 2025-10-24 23:29:38 -07:00
Magnus Müller bb8b801b5a Remove test 2025-10-24 23:23:26 -07:00
Magnus Müller dd6ec0bf03 Delete files 2025-10-24 23:21:25 -07:00
Magnus Müller 096b29c9f7 Remove tab 2025-10-24 23:15:53 -07:00
Magnus Müller 5a8f30d378 Refactor tests to utilize direct action calls in Tools
- Simplified test implementations by replacing ActionModel usage with direct calls to Tools methods (e.g., navigate, click, upload_file).
- Enhanced readability and maintainability of test code by removing unnecessary model definitions.
- Utilized new helper methods for element lookup by ID, improving efficiency in finding elements during tests.

This change aligns with recent updates to the Tools API, making tests cleaner and more intuitive.
2025-10-24 23:08:21 -07:00
Magnus Müller 8fa6efa0c9 Tests simplified 2025-10-24 23:00:42 -07:00
Magnus Müller 95716350ef Linter 2025-10-24 19:03:42 -07:00
Magnus Müller 36c0405b4a Linter 2025-10-24 19:02:08 -07:00
Magnus Müller f41da2d3b4 Fix dropdown selection for Vue.js and reactive frameworks (#3415)
Fixes dropdown selections not persisting in Vue.js, React, and other
reactive frameworks. The issue was that only 'change' events were
dispatched, but Vue's v-model requires 'input' events to register changes.

**Root Cause:**
Dropdown selection handler only dispatched 'change' events, missing the
'input' event required by reactive frameworks.

**Solution:**
Enhanced event dispatching sequence in default_action_watchdog.py:
1. Focus element first
2. Set value and selected state
3. Dispatch 'input' event (critical for Vue v-model and React)
4. Dispatch 'change' event (standard for select elements)
5. Blur element for validation

**Tests:**
Added comprehensive integration tests in tests/ci/interaction/:
- test_dropdown_vue_submit.py: Vue.js 3 with v-model
- test_dropdown_react_submit.py: React 18 with controlled components

Both tests verify dropdown selections persist through the reactive
framework's state management and form submission works correctly.

Closes #3415

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 18:54:57 -07:00
Magnus Müller 672e749d0f fix evaluate test 2025-10-24 14:17:48 -07:00
kalil0321 a8be91951f Merge branch 'main' into attempt-fix-real-browser 2025-10-24 14:59:01 +02:00
Magnus Müller 3cbea6fbf6 Add env key 2025-10-24 02:13:27 -07:00
Magnus Müller 6cf5c54075 Add api key 2025-10-24 02:12:40 -07:00
Magnus Müller f53ae8c2db Split registry 2025-10-24 02:08:42 -07:00
Magnus Müller 1404935a5c Passed 0% 2025-10-24 01:56:39 -07:00
Magnus Müller 2c7d3372e1 Add setup-chromium job to pre-cache chromium before parallel test runs
Prevents 40 parallel runners from racing to install chromium simultaneously on cache miss.

Before: 40 runners × 2min = 80 runner-minutes wasted on first run
After: 1 runner installs (2min), then 40 runners use cached version (10s each)

Savings on cache miss: ~78 runner-minutes per workflow run
2025-10-24 01:19:06 -07:00
Magnus Müller 16e64ad42b Remove not needed tests 2025-10-24 00:56:10 -07:00
Magnus Müller affe4a6665 remove test 2025-10-24 00:02:43 -07:00
kalil0321 e9b877341c Update test for Chrome profile handling to reflect new behaviour 2025-10-23 17:02:25 +02:00
Magnus Müller 4ac49de9cf fix(code-use): prevent done() execution inside conditional blocks
Previously, done() calls inside if/else/elif blocks would only show a warning
but still execute, potentially causing tasks to never complete if the condition
wasn't met. This changes the behavior to raise a RuntimeError, forcing the LLM
to restructure code properly.

The proper pattern is:
```python
# Validate and set result variables
if condition:
    result = "success"
else:
    result = "failure"

# Then call done() unconditionally
await done(result, success=True)
```

Changes:
- Upgraded warning to RuntimeError in namespace.py
- Added comprehensive test suite with 5 test cases
- Tests cover if/else/elif blocks and verify standalone done() still works

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 10:03:10 -07:00