from playwright.sync_api import sync_playwright def run( @foreach ($params as $param) {{ $param['var'] }}{{ !$loop->last?',':'' }} @endforeach ): with sync_playwright() as p: browser = p.chromium.launch(headless=True) page = browser.new_page() # Navigate to the page page.goto("{{ $url }}", timeout=0) @foreach ($params as $param) @if ($param['type'] == 'select') if page.is_visible("{{ $param['input_name'] }}"): page.select_option("{{ $param['input_name'] }}", "{{ $param['value'] }}") @endif @if ($param['type'] == 'input') if page.is_visible("{{ $param['input_name'] }}"): page.fill("{{ $param['input_name'] }}", "{{ $param['var'] }}") @endif @endforeach def extract_text(selector): try: return page.inner_text(selector) except Exception as error: print(f"Error extracting text from selector '{selector}':", error) return None @foreach ($extcracted as $extract) result{{ $loop->iteration }} = extract_text("{{ $extract }}") print("result{{ $loop->iteration }}:", result{{ $loop->iteration }}) @endforeach browser.close() @if ($params) @foreach ($params as $param) {{ $param['var'] }} = "{{ $param['value'] }}" @endforeach run( @foreach ($params as $param) {{ $param['var'] }}={{ $param['var'] }}{{ !$loop->last?',':'' }} @endforeach ) @endif