| import asyncio | |
| import os | |
| from playwright.async_api import async_playwright | |
| async def check_video_src(): | |
| url = os.getenv("ENDUSER_UI_URL", "http://localhost:5173") | |
| async with async_playwright() as p: | |
| browser = await p.chromium.launch(headless=True) | |
| context = await browser.new_context() | |
| page = await context.new_page() | |
| await page.goto(f"{url}/#/auth") | |
| await page.fill('input[type="email"]', "bob@archon.com") | |
| await page.fill('input[type="password"]', "qwer45tyuiop") | |
| await page.click('button[type="submit"]') | |
| await page.wait_for_load_state("domcontentloaded") | |
| await asyncio.sleep(2) | |
| await page.goto(f"{url}/#/brand") | |
| await page.wait_for_load_state("domcontentloaded") | |
| await asyncio.sleep(2) | |
| await page.click('button:has-text("Workbench")') | |
| await asyncio.sleep(2) | |
| await page.click('h4:has-text("Neogence")') | |
| # FIX: Use .first to avoid strict mode violation (2 videos found) | |
| video_locator = page.locator("video").first | |
| await video_locator.wait_for(timeout=10000) | |
| src = await video_locator.get_attribute("src") | |
| print(f"WEB_PATH_SRC={src}") | |
| await browser.close() | |
| if __name__ == "__main__": | |
| asyncio.run(check_video_src()) | |