generate_screenshots.py (1867B)
1 # Run with: pytest tests/generate_screenshots.py 2 # (not run by default due to lack of test_* filename prefix) 3 4 from playwright.sync_api import Page 5 6 def test_generate_screenshots(page: Page): 7 # Set viewport size 8 page.set_viewport_size({'width': 800, 'height': 380}) 9 10 # Start on homepage 11 page.goto('/') 12 13 # Click 'Create a Slideshow' 14 page.get_by_role('link', name='Create a Slideshow').click() 15 16 # Fill in song information 17 page.get_by_placeholder('Song title').last.fill('Song 1') 18 page.get_by_placeholder('Song artist').last.fill('Artist A') 19 page.get_by_role('button', name='Add Song').click() 20 page.get_by_placeholder('Song title').last.fill('Song 4') 21 page.get_by_placeholder('Song artist').last.fill('Artist C') 22 page.get_by_placeholder('Song artist').last.blur() 23 24 # Take step 1 screenshot 25 page.screenshot(path='screenshots/step-1.png', full_page=True) 26 27 # Click Next 28 page.get_by_role('button', name='Next').click() 29 30 # Uncollapse Song 1 31 page.get_by_text('Song 1 (Artist A)').click() 32 33 # Shrink textareas (for a more compact screenshot) 34 page.add_style_tag(content='textarea { height: 65px } .missing textarea { height: 40px }') 35 36 # Take step 2 screenshot 37 page.screenshot(path='screenshots/step-2.png', full_page=True) 38 39 # Click Next 40 page.get_by_role('button', name='Next').click() 41 42 # Fill in slideshow settings 43 page.get_by_role('checkbox', name='Include a title slide before each song').uncheck() 44 45 # Take step 3 screenshot 46 page.screenshot(path='screenshots/step-3.png', full_page=True) 47 48 # Click create 49 page.get_by_role('button', name='Create').click() 50 51 # Hide header (for better screenshot) 52 page.add_style_tag(content='header { display: none }') 53 54 # Take slides screenshot 55 page.screenshot(path='screenshots/slides.png', full_page=True)