diff --git a/playwright/sync_api/_context_manager.py b/playwright/sync_api/_context_manager.py index 289483bb9..30b5f65b7 100644 --- a/playwright/sync_api/_context_manager.py +++ b/playwright/sync_api/_context_manager.py @@ -45,8 +45,11 @@ def __enter__(self) -> SyncPlaywright: ) def greenlet_main() -> None: - loop.run_until_complete(self._connection.run_as_sync()) - + try: + loop.run_until_complete(self._connection.run_as_sync()) + except KeyboardInterrupt: + loop.run_until_complete(self._connection.stop_async()) + raise if own_loop: loop.run_until_complete(loop.shutdown_asyncgens()) loop.close()