@@ -348,31 +348,86 @@ def test_set_viewport(driver, pages):
348348 context_id = driver .current_window_handle
349349 driver .get (pages .url ("formPage.html" ))
350350
351- driver .browsing_context .set_viewport (context = context_id , viewport = {"width" : 250 , "height" : 300 })
351+ try :
352+ driver .browsing_context .set_viewport (context = context_id , viewport = {"width" : 251 , "height" : 301 })
352353
353- viewport_size = driver .execute_script ("return [window.innerWidth, window.innerHeight];" )
354+ viewport_size = driver .execute_script ("return [window.innerWidth, window.innerHeight];" )
354355
355- assert viewport_size [0 ] == 250
356- assert viewport_size [1 ] == 300
356+ assert viewport_size [0 ] == 251
357+ assert viewport_size [1 ] == 301
358+ finally :
359+ driver .browsing_context .set_viewport (context = context_id , viewport = None , device_pixel_ratio = None )
357360
358361
359362def test_set_viewport_with_device_pixel_ratio (driver , pages ):
360363 """Test setting the viewport with device pixel ratio."""
361364 context_id = driver .current_window_handle
362365 driver .get (pages .url ("formPage.html" ))
363366
364- driver .browsing_context .set_viewport (
365- context = context_id , viewport = {"width" : 250 , "height" : 300 }, device_pixel_ratio = 5
366- )
367+ try :
368+ driver .browsing_context .set_viewport (
369+ context = context_id , viewport = {"width" : 252 , "height" : 302 }, device_pixel_ratio = 5
370+ )
371+
372+ viewport_size = driver .execute_script ("return [window.innerWidth, window.innerHeight];" )
373+
374+ assert viewport_size [0 ] == 252
375+ assert viewport_size [1 ] == 302
376+
377+ device_pixel_ratio = driver .execute_script ("return window.devicePixelRatio" )
378+
379+ assert device_pixel_ratio == 5
380+ finally :
381+ driver .browsing_context .set_viewport (context = context_id , viewport = None , device_pixel_ratio = None )
382+
383+
384+ def test_set_viewport_with_no_args_doesnt_change_values (driver , pages ):
385+ """Test setting the viewport with no args doesn't change viewport or device pixel ratio."""
386+ context_id = driver .current_window_handle
387+ driver .get (pages .url ("formPage.html" ))
388+
389+ try :
390+ driver .browsing_context .set_viewport (
391+ context = context_id , viewport = {"width" : 253 , "height" : 303 }, device_pixel_ratio = 6
392+ )
393+
394+ driver .browsing_context .set_viewport (context = context_id )
395+
396+ viewport_size = driver .execute_script ("return [window.innerWidth, window.innerHeight];" )
397+
398+ assert viewport_size [0 ] == 253
399+ assert viewport_size [1 ] == 303
400+
401+ device_pixel_ratio = driver .execute_script ("return window.devicePixelRatio" )
402+
403+ assert device_pixel_ratio == 6
404+ finally :
405+ driver .browsing_context .set_viewport (context = context_id , viewport = None , device_pixel_ratio = None )
367406
368- viewport_size = driver .execute_script ("return [window.innerWidth, window.innerHeight];" )
369407
370- assert viewport_size [0 ] == 250
371- assert viewport_size [1 ] == 300
408+ def test_set_viewport_back_to_default (driver , pages ):
409+ """Test resetting the viewport and device pixel ratio to defaults."""
410+ context_id = driver .current_window_handle
411+ driver .get (pages .url ("formPage.html" ))
412+
413+ default_viewport_size = driver .execute_script ("return [window.innerWidth, window.innerHeight];" )
414+ default_device_pixel_ratio = driver .execute_script ("return window.devicePixelRatio" )
415+
416+ try :
417+ driver .browsing_context .set_viewport (
418+ context = context_id , viewport = {"width" : 254 , "height" : 304 }, device_pixel_ratio = 10
419+ )
420+
421+ driver .browsing_context .set_viewport (context = context_id , viewport = None , device_pixel_ratio = None )
372422
373- device_pixel_ratio = driver .execute_script ("return window.devicePixelRatio" )
423+ viewport_size = driver .execute_script ("return [window.innerWidth, window.innerHeight];" )
424+ device_pixel_ratio = driver .execute_script ("return window.devicePixelRatio" )
374425
375- assert device_pixel_ratio == 5
426+ assert viewport_size [0 ] == default_viewport_size [0 ]
427+ assert viewport_size [1 ] == default_viewport_size [1 ]
428+ assert device_pixel_ratio == default_device_pixel_ratio
429+ finally :
430+ driver .browsing_context .set_viewport (context = context_id , viewport = None , device_pixel_ratio = None )
376431
377432
378433def test_print_page (driver , pages ):
0 commit comments