@@ -43,6 +43,7 @@ def __init__(
4343 record_video_dir : str | Path | None = None ,
4444 record_video_size : dict [str , int ] | None = None ,
4545 viewport : Viewport | dict [str , int ] | None = None ,
46+ device_scale_factor : float | None = None ,
4647 ):
4748 """
4849 Initialize Sentience browser
@@ -115,6 +116,9 @@ def __init__(
115116 else :
116117 self .viewport = viewport
117118
119+ # Device scale factor for high-DPI emulation
120+ self .device_scale_factor = device_scale_factor
121+
118122 self .playwright : Playwright | None = None
119123 self .context : BrowserContext | None = None
120124 self .page : Page | None = None
@@ -217,6 +221,10 @@ def start(self) -> None:
217221 "user_agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36" ,
218222 }
219223
224+ # Add device scale factor if configured
225+ if self .device_scale_factor is not None :
226+ launch_params ["device_scale_factor" ] = self .device_scale_factor
227+
220228 # Add proxy if configured
221229 if proxy_config :
222230 launch_params ["proxy" ] = proxy_config .to_playwright_dict ()
@@ -596,6 +604,7 @@ def __init__(
596604 record_video_dir : str | Path | None = None ,
597605 record_video_size : dict [str , int ] | None = None ,
598606 viewport : Viewport | dict [str , int ] | None = None ,
607+ device_scale_factor : float | None = None ,
599608 ):
600609 """
601610 Initialize Async Sentience browser
@@ -615,6 +624,11 @@ def __init__(
615624 Viewport(width=1920, height=1080) (Full HD)
616625 {"width": 1280, "height": 800} (dict also supported)
617626 If None, defaults to Viewport(width=1280, height=800).
627+ device_scale_factor: Optional device scale factor to emulate high-DPI (Retina) screens.
628+ Examples: 1.0 (default, standard DPI)
629+ 2.0 (Retina/high-DPI, like MacBook Pro)
630+ 3.0 (very high DPI)
631+ If None, defaults to 1.0 (standard DPI).
618632 """
619633 self .api_key = api_key
620634 # Only set api_url if api_key is provided, otherwise None (free tier)
@@ -649,6 +663,9 @@ def __init__(
649663 else :
650664 self .viewport = viewport
651665
666+ # Device scale factor for high-DPI emulation
667+ self .device_scale_factor = device_scale_factor
668+
652669 self .playwright : AsyncPlaywright | None = None
653670 self .context : AsyncBrowserContext | None = None
654671 self .page : AsyncPage | None = None
@@ -741,6 +758,10 @@ async def start(self) -> None:
741758 "user_agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36" ,
742759 }
743760
761+ # Add device scale factor if configured
762+ if self .device_scale_factor is not None :
763+ launch_params ["device_scale_factor" ] = self .device_scale_factor
764+
744765 # Add proxy if configured
745766 if proxy_config :
746767 launch_params ["proxy" ] = proxy_config .to_playwright_dict ()
0 commit comments