from playwright.sync_api import sync_playwright
from pathlib import Path
import json
url='https://agents.agentsolutions-mallorca.com/wissenspipeline'
question='Was haben wir aus unseren verschiedenen Quellen über den sinnvollen Aufbau eines autonomen Agentensystems gelernt, und welche Architektur ergibt sich daraus?'
with sync_playwright() as p:
browser=p.chromium.launch(headless=True, executable_path='/snap/bin/chromium', args=['--no-sandbox'])
page=browser.new_page(viewport={'width':1440,'height':1000})
console_errors=[]; request_failures=[]; api=[]
page.on('console',lambda m: console_errors.append(m.text) if m.type=='error' else None)
page.on('requestfailed',lambda r: request_failures.append({'url':r.url,'failure':r.failure}))
page.on('response',lambda r: api.append({'url':r.url,'status':r.status,'content_type':r.headers.get('content-type','')}) if ('knowledge' in r.url or 'api' in r.url) else None)
page.goto(url,wait_until='domcontentloaded',timeout=30000)
visible={'title':page.locator('h1').first.inner_text(),'textarea':page.locator('#knowledge-question').is_visible(),'button':page.locator('#knowledge-ask-form button').inner_text(),'url':page.url}
page.locator('#knowledge-question').fill(question)
page.locator('#knowledge-ask-form button').click()
page.wait_for_function("document.getElementById('knowledge-ask-status')?.textContent === 'Antwort erstellt.'",timeout=170000)
page.screenshot(path='/home/hermes/Wissenspipeline-Frage-Dashboard-Public-E2E.png',full_page=True)
result={'url':page.url,'visible':visible,'question_value':page.locator('#knowledge-question').input_value(),'status':page.locator('#knowledge-ask-status').inner_text(),'answer_visible':page.locator('#knowledge-ask-answer').is_visible(),'answer_text':page.locator('#knowledge-ask-answer').inner_text(),'sources_visible':page.locator('#knowledge-ask-sources').is_visible(),'sources_text':page.locator('#knowledge-ask-sources-body').inner_text(),'console_errors':console_errors,'request_failures':request_failures,'api_responses':api}
Path('/tmp/public_question_e2e.json').write_text(json.dumps(result,ensure_ascii=False,indent=2))
print(json.dumps({**result,'answer_text':result['answer_text'][:1600],'sources_text':result['sources_text'][:1200]},ensure_ascii=False,indent=2))
browser.close()