dina1 commited on
Commit
70a8b07
·
verified ·
1 Parent(s): 193013f

Create playwright_model.py

Browse files
Files changed (1) hide show
  1. playwright_model.py +47 -0
playwright_model.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # playwright_model.py
2
+ import os
3
+ import asyncio
4
+ from playwright.async_api import async_playwright
5
+ from fpdf import FPDF
6
+
7
+ async def generate_ui_report(app_url: str, output_pdf="ui_report.pdf"):
8
+ """Navigate PowerApps-style UI, take screenshots, and build PDF report."""
9
+ os.makedirs("screenshots", exist_ok=True)
10
+ screenshots = []
11
+
12
+ async with async_playwright() as p:
13
+ browser = await p.chromium.launch(headless=True)
14
+ page = await browser.new_page()
15
+ await page.goto(app_url, timeout=60000)
16
+ await page.wait_for_load_state("networkidle")
17
+
18
+ sidebar_items = await page.query_selector_all(".menu-item")
19
+ for idx, item in enumerate(sidebar_items):
20
+ label = (await item.inner_text()).strip()
21
+ print(f"Sidebar → {label}")
22
+ await item.click()
23
+ await page.wait_for_timeout(1500)
24
+ img = f"screenshots/sidebar_{idx+1}_{label.replace(' ','_')}.png"
25
+ await page.screenshot(path=img, full_page=True)
26
+ screenshots.append(img)
27
+
28
+ # Workflow clicks
29
+ workflow_steps = await page.query_selector_all(".workflow-step, .workflow-item")
30
+ for w_idx, step in enumerate(workflow_steps):
31
+ step_label = (await step.inner_text()).strip()
32
+ print(f" Workflow → {step_label}")
33
+ await step.click()
34
+ await page.wait_for_timeout(1000)
35
+ w_img = f"screenshots/workflow_{idx+1}_{w_idx+1}_{step_label.replace(' ','_')}.png"
36
+ await page.screenshot(path=w_img, full_page=True)
37
+ screenshots.append(w_img)
38
+
39
+ await browser.close()
40
+
41
+ pdf = FPDF()
42
+ for img in screenshots:
43
+ pdf.add_page()
44
+ pdf.image(img, x=5, y=5, w=200)
45
+ pdf.output(output_pdf)
46
+ print(f"✅ Report saved: {output_pdf}")
47
+ return output_pdf