Source code for scitex_browser.interaction.click_center

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Timestamp: "2025-10-10 03:24:17 (ywatanabe)"
# File: /home/ywatanabe/proj/scitex_repo/src/scitex/browser/interaction/click_center.py
# ----------------------------------------
from __future__ import annotations

import os

__FILE__ = "./src/scitex/browser/interaction/click_center.py"
__DIR__ = os.path.dirname(__FILE__)
# ----------------------------------------

__FILE__ = __file__

"""
Click center of viewport utility for browser automation.

Functionalities:
  - Clicks the center point of the browser viewport
  - Provides visual feedback during operation
  - Simple utility for centering interactions

Dependencies:
  - packages:
    - playwright

IO:
  - input-files: None
  - output-files: None
"""

"""Imports"""
import scitex_logging as logging

logger = logging.getLogger(__name__)

"""Functions & Classes"""


[docs] async def click_center_async( page, verbose: bool = False, func_name="click_center_async" ): """Click the center of the viewport. Args: page: Playwright page object verbose: Enable visual feedback (default False) Returns: Click result """ from ..debugging import browser_logger if verbose: await browser_logger.debug( page, f"{func_name}: Clicking the center of the page...", verbose=verbose, ) viewport_size = page.viewport_size center_x = viewport_size["width"] // 2 center_y = viewport_size["height"] // 2 clicked = await page.mouse.click(center_x, center_y) await page.wait_for_timeout(1_000) logger.debug(f"{func_name}: Clicked center at ({center_x}, {center_y})") return clicked
def main(args): """Demonstrate click_center functionality.""" import asyncio from playwright.async_api import async_playwright from ..debugging import browser_logger async def demo(): async with async_playwright() as p: browser = await p.chromium.launch(headless=False) page = await browser.new_page() await browser_logger.debug( page, "Click Center: Starting demo", verbose=True ) await page.goto("https://example.com", timeout=30000) # Demonstrate clicking center await click_center_async(page, verbose=True) logger.success("Click center demonstration complete") await browser_logger.debug(page, "✓ Demo complete", verbose=True) await asyncio.sleep(2) await browser.close() asyncio.run(demo()) return 0 def parse_args(): """Parse command line arguments.""" import argparse parser = argparse.ArgumentParser(description="Click center demo") return parser.parse_args() def run_main() -> None: """Initialize scitex framework, run main function, and cleanup.""" global CONFIG, CC, sys, plt, rng import sys import matplotlib.pyplot as plt import scitex as stx args = parse_args() CONFIG, sys.stdout, sys.stderr, plt, CC, rng = stx.session.start( sys, plt, args=args, file=__FILE__, sdir_suffix=None, verbose=False, agg=True, ) exit_status = main(args) stx.session.close( CONFIG, verbose=False, notify=False, message="", exit_status=exit_status, ) if __name__ == "__main__": run_main() # python -m scitex_browser.interaction.click_center # EOF