Files

41 lines
2.1 KiB
Python
Raw Permalink Normal View History

"""V8.24 isolated Chromium demo test; does NOT claim logged-in production E2E.
Run: python scripts/studio_nested_browser_v824.py
"""
from pathlib import Path
from playwright.sync_api import sync_playwright
ROOT=Path(__file__).resolve().parents[1]
HTML=ROOT/'examples/Studio_V8_24_深层嵌套可视化编辑器_交互演示.html'
def main():
with sync_playwright() as pl:
browser=pl.chromium.launch(executable_path='/usr/bin/chromium',headless=True,args=['--no-sandbox','--disable-dev-shm-usage'])
try:
page=browser.new_page(viewport={'width':1440,'height':920},device_scale_factor=1)
errors=[]
page.on('pageerror',lambda error:errors.append(str(error)))
page.set_content(HTML.read_text(encoding='utf-8'))
assert page.locator('.unit').count()==4
page.locator('.unit').filter(has_text='车辆选择').click()
assert '第二层组件' in page.locator('#selectedInfo').inner_text()
page.locator('#title').fill('ROX 01 海外交付')
assert page.locator('.unit h2').filter(has_text='ROX 01 海外交付').count()==1
page.get_by_role('button',name='复制组件',exact=True).click()
assert page.locator('.unit').count()==5
page.get_by_role('button',name='手机',exact=True).click()
assert 'phone' in page.locator('#page').get_attribute('class')
page.get_by_role('button',name='手机 2 列',exact=True).click()
assert '手机设置:2 列' in page.locator('#mobileStatus').inner_text()
page.get_by_role('button',name='保存草稿').click()
assert '演示草稿已保存' in page.locator('#status').inner_text()
page.get_by_role('button',name='电脑',exact=True).click()
out=ROOT/'reports/v824/studio-v824-demo.png';out.parent.mkdir(parents=True,exist_ok=True)
page.screenshot(path=str(out),full_page=True)
assert not errors,errors
print('PASS: Chromium set_content demo; select / edit / duplicate / responsive / save; 0 script errors')
finally:
browser.close()
if __name__=='__main__':main()