@@ -2256,20 +2256,28 @@ async def cdp_client_for_node(self, node: EnhancedDOMTreeNode) -> CDPSession:
2256
2256
2257
2257
return await self .get_or_create_cdp_session ()
2258
2258
2259
- async def take_screenshot (self , path : str | None = None , full_page : bool = False , format : str = 'png' , quality : int | None = None , clip : dict | None = None ) -> bytes :
2259
+ async def take_screenshot (
2260
+ self ,
2261
+ path : str | None = None ,
2262
+ full_page : bool = False ,
2263
+ format : str = 'png' ,
2264
+ quality : int | None = None ,
2265
+ clip : dict | None = None ,
2266
+ ) -> bytes :
2260
2267
"""Take a screenshot using CDP.
2261
-
2268
+
2262
2269
Args:
2263
2270
path: Optional file path to save screenshot
2264
2271
full_page: Capture entire scrollable page beyond viewport
2265
2272
format: Image format ('png', 'jpeg', 'webp')
2266
2273
quality: Quality 0-100 for JPEG format
2267
2274
clip: Region to capture {'x': int, 'y': int, 'width': int, 'height': int}
2268
-
2275
+
2269
2276
Returns:
2270
2277
Screenshot data as bytes
2271
2278
"""
2272
2279
import base64
2280
+
2273
2281
from cdp_use .cdp .page import CaptureScreenshotParameters
2274
2282
2275
2283
cdp_session = await self .get_or_create_cdp_session ()
@@ -2294,17 +2302,15 @@ async def take_screenshot(self, path: str | None = None, full_page: bool = False
2294
2302
2295
2303
params = CaptureScreenshotParameters (** params )
2296
2304
2297
- result = await cdp_session .cdp_client .send .Page .captureScreenshot (
2298
- params = params ,
2299
- session_id = cdp_session .session_id
2300
- )
2305
+ result = await cdp_session .cdp_client .send .Page .captureScreenshot (params = params , session_id = cdp_session .session_id )
2301
2306
2302
2307
if not result or 'data' not in result :
2303
2308
raise Exception ('Screenshot failed - no data returned' )
2304
2309
2305
2310
screenshot_data = base64 .b64decode (result ['data' ])
2306
2311
2307
- if path : Path (path ).write_bytes (screenshot_data )
2312
+ if path :
2313
+ Path (path ).write_bytes (screenshot_data )
2308
2314
2309
2315
return screenshot_data
2310
2316
@@ -2344,18 +2350,11 @@ async def _get_element_bounds(self, selector: str) -> dict | None:
2344
2350
cdp_session = await self .get_or_create_cdp_session ()
2345
2351
2346
2352
# Get document
2347
- doc = await cdp_session .cdp_client .send .DOM .getDocument (
2348
- params = {'depth' : 1 },
2349
- session_id = cdp_session .session_id
2350
- )
2353
+ doc = await cdp_session .cdp_client .send .DOM .getDocument (params = {'depth' : 1 }, session_id = cdp_session .session_id )
2351
2354
2352
2355
# Query selector
2353
2356
node_result = await cdp_session .cdp_client .send .DOM .querySelector (
2354
- params = {
2355
- 'nodeId' : doc ['root' ]['nodeId' ],
2356
- 'selector' : selector
2357
- },
2358
- session_id = cdp_session .session_id
2357
+ params = {'nodeId' : doc ['root' ]['nodeId' ], 'selector' : selector }, session_id = cdp_session .session_id
2359
2358
)
2360
2359
2361
2360
node_id = node_result .get ('nodeId' )
@@ -2364,8 +2363,7 @@ async def _get_element_bounds(self, selector: str) -> dict | None:
2364
2363
2365
2364
# Get bounding box
2366
2365
box_result = await cdp_session .cdp_client .send .DOM .getBoxModel (
2367
- params = {'nodeId' : node_id },
2368
- session_id = cdp_session .session_id
2366
+ params = {'nodeId' : node_id }, session_id = cdp_session .session_id
2369
2367
)
2370
2368
2371
2369
box_model = box_result .get ('model' )
@@ -2377,5 +2375,5 @@ async def _get_element_bounds(self, selector: str) -> dict | None:
2377
2375
'x' : min (content [0 ], content [2 ], content [4 ], content [6 ]),
2378
2376
'y' : min (content [1 ], content [3 ], content [5 ], content [7 ]),
2379
2377
'width' : max (content [0 ], content [2 ], content [4 ], content [6 ]) - min (content [0 ], content [2 ], content [4 ], content [6 ]),
2380
- 'height' : max (content [1 ], content [3 ], content [5 ], content [7 ]) - min (content [1 ], content [3 ], content [5 ], content [7 ])
2381
- }
2378
+ 'height' : max (content [1 ], content [3 ], content [5 ], content [7 ]) - min (content [1 ], content [3 ], content [5 ], content [7 ]),
2379
+ }
0 commit comments