@@ -1009,8 +1009,77 @@ public Task SetJavaScriptEnabledAsync(bool enabled)
10091009 /// </summary>
10101010 /// <returns>Task.</returns>
10111011 /// <param name="media">Media to set.</param>
1012- public Task EmulateMediaAsync ( MediaType media )
1013- => Client . SendAsync ( "Emulation.setEmulatedMedia" , new EmulationSetEmulatedMediaRequest { Media = media } ) ;
1012+ [ Obsolete ( "User EmulateMediaTypeAsync instead" ) ]
1013+ public Task EmulateMediaAsync ( MediaType media ) => EmulateMediaTypeAsync ( media ) ;
1014+
1015+ /// <summary>
1016+ /// Emulates a media such as screen or print.
1017+ /// </summary>
1018+ /// <param name="type">Media to set.</param>
1019+ /// <example>
1020+ /// <code>
1021+ /// <![CDATA[
1022+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('screen').matches)");
1023+ /// // → true
1024+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('print').matches)");
1025+ /// // → true
1026+ /// await page.EmulateMediaTypeAsync(MediaType.Print);
1027+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('screen').matches)");
1028+ /// // → false
1029+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('print').matches)");
1030+ /// // → true
1031+ /// await page.EmulateMediaTypeAsync(MediaType.None);
1032+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('screen').matches)");
1033+ /// // → true
1034+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('print').matches)");
1035+ /// // → true
1036+ /// ]]>
1037+ /// </code>
1038+ /// </example>
1039+ /// <returns>Emulate media type task.</returns>
1040+ public Task EmulateMediaTypeAsync ( MediaType type )
1041+ => Client . SendAsync ( "Emulation.setEmulatedMedia" , new EmulationSetEmulatedMediaTypeRequest { Media = type } ) ;
1042+
1043+ /// <summary>
1044+ /// Given an array of media feature objects, emulates CSS media features on the page.
1045+ /// </summary>
1046+ /// <param name="features">Features to apply</param>
1047+ /// <example>
1048+ /// <code>
1049+ /// <![CDATA[
1050+ /// await page.EmulateMediaFeaturesAsync(new MediaFeature[]{ new MediaFeature { MediaFeature = MediaFeature.PrefersColorScheme, Value = "dark" }});
1051+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('(prefers-color-scheme: dark)').matches)");
1052+ /// // → true
1053+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('(prefers-color-scheme: light)').matches)");
1054+ /// // → false
1055+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('(prefers-color-scheme: no-preference)').matches)");
1056+ /// // → false
1057+ /// await page.EmulateMediaFeaturesAsync(new MediaFeature[]{ new MediaFeature { MediaFeature = MediaFeature.PrefersReducedMotion, Value = "reduce" }});
1058+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('(prefers-reduced-motion: reduce)').matches)");
1059+ /// // → true
1060+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('(prefers-color-scheme: no-preference)').matches)");
1061+ /// // → false
1062+ /// await page.EmulateMediaFeaturesAsync(new MediaFeature[]
1063+ /// {
1064+ /// new MediaFeature { MediaFeature = MediaFeature.PrefersColorScheme, Value = "dark" },
1065+ /// new MediaFeature { MediaFeature = MediaFeature.PrefersReducedMotion, Value = "reduce" },
1066+ /// });
1067+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('(prefers-color-scheme: dark)').matches)");
1068+ /// // → true
1069+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('(prefers-color-scheme: light)').matches)");
1070+ /// // → false
1071+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('(prefers-color-scheme: no-preference)').matches)");
1072+ /// // → false
1073+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('(prefers-reduced-motion: reduce)').matches)");
1074+ /// // → true
1075+ /// await page.EvaluateFunctionAsync<bool>("() => matchMedia('(prefers-color-scheme: no-preference)').matches)");
1076+ /// // → false
1077+ /// ]]>
1078+ /// </code>
1079+ /// </example>
1080+ /// <returns>Emulate features task</returns>
1081+ public Task EmulateMediaFeaturesAsync ( IEnumerable < MediaFeatureValue > features )
1082+ => Client . SendAsync ( "Emulation.setEmulatedMedia" , new EmulationSetEmulatedMediaFeatureRequest { Features = features } ) ;
10141083
10151084 /// <summary>
10161085 /// Sets the viewport.
0 commit comments