diff --git a/browser_utils/page_controller.py b/browser_utils/page_controller.py index 38c3dda..fa682dd 100644 --- a/browser_utils/page_controller.py +++ b/browser_utils/page_controller.py @@ -152,11 +152,8 @@ async def submit_prompt( check_client_disconnected, "After Input Visible" ) - # Fill textarea using centralized logic (inherited from InputController if possible, or direct) - await textarea.evaluate( - "(el, t) => { el.value = t; el.dispatchEvent(new Event('input', {bubbles:true})); el.dispatchEvent(new Event('change', {bubbles:true})); }", - prompt, - ) + # Use Playwright-native fill so Angular/React/Vue input handlers receive proper events. + await textarea.fill(prompt) await self._check_disconnect( check_client_disconnected, "After Input Fill" ) diff --git a/config/selectors.py b/config/selectors.py index 1d90d33..3c57d43 100644 --- a/config/selectors.py +++ b/config/selectors.py @@ -23,6 +23,7 @@ # Submit button: prioritize primary submit button in prompt area SUBMIT_BUTTON_SELECTOR = ( # Current UI structure + "button.ctrl-enter-submits, " 'ms-run-button button[type="submit"].ms-button-primary, ' 'ms-run-button button[type="submit"], ' # Legacy selectors @@ -296,3 +297,4 @@ 'mat-dialog-container button:has-text("Cancel"), ' 'mat-mdc-dialog-container button:has-text("Cancel")' ) +