anchorbrowser 0.1.0a3__py3-none-any.whl → 0.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- anchorbrowser/__init__.py +3 -1
- anchorbrowser/_base_client.py +16 -13
- anchorbrowser/_client.py +21 -9
- anchorbrowser/_compat.py +48 -48
- anchorbrowser/_files.py +4 -4
- anchorbrowser/_models.py +51 -45
- anchorbrowser/_qs.py +7 -7
- anchorbrowser/_types.py +53 -12
- anchorbrowser/_utils/__init__.py +9 -2
- anchorbrowser/_utils/_compat.py +45 -0
- anchorbrowser/_utils/_datetime_parse.py +136 -0
- anchorbrowser/_utils/_transform.py +13 -3
- anchorbrowser/_utils/_typing.py +6 -1
- anchorbrowser/_utils/_utils.py +4 -5
- anchorbrowser/_version.py +1 -1
- anchorbrowser/lib/browser.py +1 -1
- anchorbrowser/resources/__init__.py +14 -0
- anchorbrowser/resources/events.py +270 -0
- anchorbrowser/resources/extensions.py +9 -9
- anchorbrowser/resources/profiles.py +31 -43
- anchorbrowser/resources/sessions/all.py +5 -5
- anchorbrowser/resources/sessions/clipboard.py +5 -5
- anchorbrowser/resources/sessions/keyboard.py +11 -13
- anchorbrowser/resources/sessions/mouse.py +19 -19
- anchorbrowser/resources/sessions/recordings/primary.py +3 -3
- anchorbrowser/resources/sessions/recordings/recordings.py +7 -7
- anchorbrowser/resources/sessions/sessions.py +307 -30
- anchorbrowser/resources/tools.py +107 -37
- anchorbrowser/types/__init__.py +7 -0
- anchorbrowser/types/event_signal_params.py +13 -0
- anchorbrowser/types/event_wait_for_params.py +14 -0
- anchorbrowser/types/event_wait_for_response.py +12 -0
- anchorbrowser/types/extension_manifest.py +6 -1
- anchorbrowser/types/profile_create_params.py +3 -6
- anchorbrowser/types/profile_list_response.py +0 -3
- anchorbrowser/types/profile_retrieve_response.py +0 -3
- anchorbrowser/types/profile_update_params.py +0 -6
- anchorbrowser/types/session_create_params.py +262 -26
- anchorbrowser/types/session_list_pages_response.py +25 -0
- anchorbrowser/types/session_retrieve_response.py +46 -0
- anchorbrowser/types/session_scroll_params.py +3 -0
- anchorbrowser/types/session_upload_file_params.py +14 -0
- anchorbrowser/types/session_upload_file_response.py +17 -0
- anchorbrowser/types/sessions/keyboard_shortcut_params.py +2 -2
- anchorbrowser/types/sessions/recording_list_response.py +4 -8
- anchorbrowser/types/tool_fetch_webpage_params.py +15 -0
- anchorbrowser/types/tool_perform_web_task_params.py +17 -1
- anchorbrowser/types/tool_perform_web_task_response.py +3 -3
- {anchorbrowser-0.1.0a3.dist-info → anchorbrowser-0.1.1.dist-info}/METADATA +8 -9
- {anchorbrowser-0.1.0a3.dist-info → anchorbrowser-0.1.1.dist-info}/RECORD +52 -42
- {anchorbrowser-0.1.0a3.dist-info → anchorbrowser-0.1.1.dist-info}/WHEEL +0 -0
- {anchorbrowser-0.1.0a3.dist-info → anchorbrowser-0.1.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
from typing import Mapping, cast
|
|
5
6
|
from typing_extensions import Literal
|
|
6
7
|
|
|
7
8
|
import httpx
|
|
@@ -27,10 +28,11 @@ from ...types import (
|
|
|
27
28
|
session_paste_params,
|
|
28
29
|
session_create_params,
|
|
29
30
|
session_scroll_params,
|
|
31
|
+
session_upload_file_params,
|
|
30
32
|
session_drag_and_drop_params,
|
|
31
33
|
)
|
|
32
|
-
from ..._types import
|
|
33
|
-
from ..._utils import maybe_transform, async_maybe_transform
|
|
34
|
+
from ..._types import Body, Omit, Query, Headers, NotGiven, FileTypes, omit, not_given
|
|
35
|
+
from ..._utils import extract_files, maybe_transform, deepcopy_minimal, async_maybe_transform
|
|
34
36
|
from .keyboard import (
|
|
35
37
|
KeyboardResource,
|
|
36
38
|
AsyncKeyboardResource,
|
|
@@ -78,6 +80,9 @@ from ...types.session_paste_response import SessionPasteResponse
|
|
|
78
80
|
from ...types.session_create_response import SessionCreateResponse
|
|
79
81
|
from ...types.session_scroll_response import SessionScrollResponse
|
|
80
82
|
from ...types.shared.success_response import SuccessResponse
|
|
83
|
+
from ...types.session_retrieve_response import SessionRetrieveResponse
|
|
84
|
+
from ...types.session_list_pages_response import SessionListPagesResponse
|
|
85
|
+
from ...types.session_upload_file_response import SessionUploadFileResponse
|
|
81
86
|
from ...types.session_drag_and_drop_response import SessionDragAndDropResponse
|
|
82
87
|
from ...types.session_retrieve_downloads_response import SessionRetrieveDownloadsResponse
|
|
83
88
|
|
|
@@ -127,14 +132,14 @@ class SessionsResource(SyncAPIResource):
|
|
|
127
132
|
def create(
|
|
128
133
|
self,
|
|
129
134
|
*,
|
|
130
|
-
browser: session_create_params.Browser |
|
|
131
|
-
session: session_create_params.Session |
|
|
135
|
+
browser: session_create_params.Browser | Omit = omit,
|
|
136
|
+
session: session_create_params.Session | Omit = omit,
|
|
132
137
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
133
138
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
134
139
|
extra_headers: Headers | None = None,
|
|
135
140
|
extra_query: Query | None = None,
|
|
136
141
|
extra_body: Body | None = None,
|
|
137
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
142
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
138
143
|
) -> SessionCreateResponse:
|
|
139
144
|
"""
|
|
140
145
|
Allocates a new browser session for the user, with optional configurations for
|
|
@@ -168,6 +173,39 @@ class SessionsResource(SyncAPIResource):
|
|
|
168
173
|
cast_to=SessionCreateResponse,
|
|
169
174
|
)
|
|
170
175
|
|
|
176
|
+
def retrieve(
|
|
177
|
+
self,
|
|
178
|
+
session_id: str,
|
|
179
|
+
*,
|
|
180
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
181
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
182
|
+
extra_headers: Headers | None = None,
|
|
183
|
+
extra_query: Query | None = None,
|
|
184
|
+
extra_body: Body | None = None,
|
|
185
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
186
|
+
) -> SessionRetrieveResponse:
|
|
187
|
+
"""
|
|
188
|
+
Retrieves detailed information about a specific browser session.
|
|
189
|
+
|
|
190
|
+
Args:
|
|
191
|
+
extra_headers: Send extra headers
|
|
192
|
+
|
|
193
|
+
extra_query: Add additional query parameters to the request
|
|
194
|
+
|
|
195
|
+
extra_body: Add additional JSON properties to the request
|
|
196
|
+
|
|
197
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
198
|
+
"""
|
|
199
|
+
if not session_id:
|
|
200
|
+
raise ValueError(f"Expected a non-empty value for `session_id` but received {session_id!r}")
|
|
201
|
+
return self._get(
|
|
202
|
+
f"/v1/sessions/{session_id}",
|
|
203
|
+
options=make_request_options(
|
|
204
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
205
|
+
),
|
|
206
|
+
cast_to=SessionRetrieveResponse,
|
|
207
|
+
)
|
|
208
|
+
|
|
171
209
|
def delete(
|
|
172
210
|
self,
|
|
173
211
|
session_id: str,
|
|
@@ -177,7 +215,7 @@ class SessionsResource(SyncAPIResource):
|
|
|
177
215
|
extra_headers: Headers | None = None,
|
|
178
216
|
extra_query: Query | None = None,
|
|
179
217
|
extra_body: Body | None = None,
|
|
180
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
218
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
181
219
|
) -> SuccessResponse:
|
|
182
220
|
"""
|
|
183
221
|
Deletes the browser session associated with the provided browser session ID.
|
|
@@ -211,7 +249,7 @@ class SessionsResource(SyncAPIResource):
|
|
|
211
249
|
extra_headers: Headers | None = None,
|
|
212
250
|
extra_query: Query | None = None,
|
|
213
251
|
extra_body: Body | None = None,
|
|
214
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
252
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
215
253
|
) -> SessionCopyResponse:
|
|
216
254
|
"""
|
|
217
255
|
Copies the currently selected text to the clipboard
|
|
@@ -243,13 +281,13 @@ class SessionsResource(SyncAPIResource):
|
|
|
243
281
|
end_y: int,
|
|
244
282
|
start_x: int,
|
|
245
283
|
start_y: int,
|
|
246
|
-
button: Literal["left", "middle", "right"] |
|
|
284
|
+
button: Literal["left", "middle", "right"] | Omit = omit,
|
|
247
285
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
248
286
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
249
287
|
extra_headers: Headers | None = None,
|
|
250
288
|
extra_query: Query | None = None,
|
|
251
289
|
extra_body: Body | None = None,
|
|
252
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
290
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
253
291
|
) -> SessionDragAndDropResponse:
|
|
254
292
|
"""
|
|
255
293
|
Performs a drag and drop operation from start coordinates to end coordinates
|
|
@@ -303,7 +341,7 @@ class SessionsResource(SyncAPIResource):
|
|
|
303
341
|
extra_headers: Headers | None = None,
|
|
304
342
|
extra_query: Query | None = None,
|
|
305
343
|
extra_body: Body | None = None,
|
|
306
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
344
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
307
345
|
) -> SessionGotoResponse:
|
|
308
346
|
"""
|
|
309
347
|
Navigates the browser session to the specified URL
|
|
@@ -330,6 +368,39 @@ class SessionsResource(SyncAPIResource):
|
|
|
330
368
|
cast_to=SessionGotoResponse,
|
|
331
369
|
)
|
|
332
370
|
|
|
371
|
+
def list_pages(
|
|
372
|
+
self,
|
|
373
|
+
session_id: str,
|
|
374
|
+
*,
|
|
375
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
376
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
377
|
+
extra_headers: Headers | None = None,
|
|
378
|
+
extra_query: Query | None = None,
|
|
379
|
+
extra_body: Body | None = None,
|
|
380
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
381
|
+
) -> SessionListPagesResponse:
|
|
382
|
+
"""
|
|
383
|
+
Retrieves a list of pages associated with a specific browser session.
|
|
384
|
+
|
|
385
|
+
Args:
|
|
386
|
+
extra_headers: Send extra headers
|
|
387
|
+
|
|
388
|
+
extra_query: Add additional query parameters to the request
|
|
389
|
+
|
|
390
|
+
extra_body: Add additional JSON properties to the request
|
|
391
|
+
|
|
392
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
393
|
+
"""
|
|
394
|
+
if not session_id:
|
|
395
|
+
raise ValueError(f"Expected a non-empty value for `session_id` but received {session_id!r}")
|
|
396
|
+
return self._get(
|
|
397
|
+
f"/v1/sessions/{session_id}/pages",
|
|
398
|
+
options=make_request_options(
|
|
399
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
400
|
+
),
|
|
401
|
+
cast_to=SessionListPagesResponse,
|
|
402
|
+
)
|
|
403
|
+
|
|
333
404
|
def paste(
|
|
334
405
|
self,
|
|
335
406
|
session_id: str,
|
|
@@ -340,7 +411,7 @@ class SessionsResource(SyncAPIResource):
|
|
|
340
411
|
extra_headers: Headers | None = None,
|
|
341
412
|
extra_query: Query | None = None,
|
|
342
413
|
extra_body: Body | None = None,
|
|
343
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
414
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
344
415
|
) -> SessionPasteResponse:
|
|
345
416
|
"""
|
|
346
417
|
Pastes text at the current cursor position
|
|
@@ -376,7 +447,7 @@ class SessionsResource(SyncAPIResource):
|
|
|
376
447
|
extra_headers: Headers | None = None,
|
|
377
448
|
extra_query: Query | None = None,
|
|
378
449
|
extra_body: Body | None = None,
|
|
379
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
450
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
380
451
|
) -> SessionRetrieveDownloadsResponse:
|
|
381
452
|
"""Retrieves metadata of files downloaded during a browser session.
|
|
382
453
|
|
|
@@ -411,7 +482,7 @@ class SessionsResource(SyncAPIResource):
|
|
|
411
482
|
extra_headers: Headers | None = None,
|
|
412
483
|
extra_query: Query | None = None,
|
|
413
484
|
extra_body: Body | None = None,
|
|
414
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
485
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
415
486
|
) -> BinaryAPIResponse:
|
|
416
487
|
"""
|
|
417
488
|
Takes a screenshot of the current browser session and returns it as an image.
|
|
@@ -443,14 +514,15 @@ class SessionsResource(SyncAPIResource):
|
|
|
443
514
|
delta_y: int,
|
|
444
515
|
x: int,
|
|
445
516
|
y: int,
|
|
446
|
-
delta_x: int |
|
|
447
|
-
steps: int |
|
|
517
|
+
delta_x: int | Omit = omit,
|
|
518
|
+
steps: int | Omit = omit,
|
|
519
|
+
use_os: bool | Omit = omit,
|
|
448
520
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
449
521
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
450
522
|
extra_headers: Headers | None = None,
|
|
451
523
|
extra_query: Query | None = None,
|
|
452
524
|
extra_body: Body | None = None,
|
|
453
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
525
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
454
526
|
) -> SessionScrollResponse:
|
|
455
527
|
"""
|
|
456
528
|
Performs a scroll action at the specified coordinates
|
|
@@ -466,6 +538,8 @@ class SessionsResource(SyncAPIResource):
|
|
|
466
538
|
|
|
467
539
|
steps: Number of steps to break the scroll into for smoother scrolling
|
|
468
540
|
|
|
541
|
+
use_os: Whether to use the OS scroll or the Playwright scroll
|
|
542
|
+
|
|
469
543
|
extra_headers: Send extra headers
|
|
470
544
|
|
|
471
545
|
extra_query: Add additional query parameters to the request
|
|
@@ -485,6 +559,7 @@ class SessionsResource(SyncAPIResource):
|
|
|
485
559
|
"y": y,
|
|
486
560
|
"delta_x": delta_x,
|
|
487
561
|
"steps": steps,
|
|
562
|
+
"use_os": use_os,
|
|
488
563
|
},
|
|
489
564
|
session_scroll_params.SessionScrollParams,
|
|
490
565
|
),
|
|
@@ -494,6 +569,54 @@ class SessionsResource(SyncAPIResource):
|
|
|
494
569
|
cast_to=SessionScrollResponse,
|
|
495
570
|
)
|
|
496
571
|
|
|
572
|
+
def upload_file(
|
|
573
|
+
self,
|
|
574
|
+
session_id: str,
|
|
575
|
+
*,
|
|
576
|
+
file: FileTypes,
|
|
577
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
578
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
579
|
+
extra_headers: Headers | None = None,
|
|
580
|
+
extra_query: Query | None = None,
|
|
581
|
+
extra_body: Body | None = None,
|
|
582
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
583
|
+
) -> SessionUploadFileResponse:
|
|
584
|
+
"""
|
|
585
|
+
Upload files directly to a browser session for use with web forms and file
|
|
586
|
+
inputs.
|
|
587
|
+
|
|
588
|
+
Files are saved to the session's uploads directory and can be referenced in CDP
|
|
589
|
+
commands.
|
|
590
|
+
|
|
591
|
+
Args:
|
|
592
|
+
file: File to upload to the browser session
|
|
593
|
+
|
|
594
|
+
extra_headers: Send extra headers
|
|
595
|
+
|
|
596
|
+
extra_query: Add additional query parameters to the request
|
|
597
|
+
|
|
598
|
+
extra_body: Add additional JSON properties to the request
|
|
599
|
+
|
|
600
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
601
|
+
"""
|
|
602
|
+
if not session_id:
|
|
603
|
+
raise ValueError(f"Expected a non-empty value for `session_id` but received {session_id!r}")
|
|
604
|
+
body = deepcopy_minimal({"file": file})
|
|
605
|
+
files = extract_files(cast(Mapping[str, object], body), paths=[["file"]])
|
|
606
|
+
# It should be noted that the actual Content-Type header that will be
|
|
607
|
+
# sent to the server will contain a `boundary` parameter, e.g.
|
|
608
|
+
# multipart/form-data; boundary=---abc--
|
|
609
|
+
extra_headers = {"Content-Type": "multipart/form-data", **(extra_headers or {})}
|
|
610
|
+
return self._post(
|
|
611
|
+
f"/v1/sessions/{session_id}/uploads",
|
|
612
|
+
body=maybe_transform(body, session_upload_file_params.SessionUploadFileParams),
|
|
613
|
+
files=files,
|
|
614
|
+
options=make_request_options(
|
|
615
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
616
|
+
),
|
|
617
|
+
cast_to=SessionUploadFileResponse,
|
|
618
|
+
)
|
|
619
|
+
|
|
497
620
|
|
|
498
621
|
class AsyncSessionsResource(AsyncAPIResource):
|
|
499
622
|
@cached_property
|
|
@@ -538,14 +661,14 @@ class AsyncSessionsResource(AsyncAPIResource):
|
|
|
538
661
|
async def create(
|
|
539
662
|
self,
|
|
540
663
|
*,
|
|
541
|
-
browser: session_create_params.Browser |
|
|
542
|
-
session: session_create_params.Session |
|
|
664
|
+
browser: session_create_params.Browser | Omit = omit,
|
|
665
|
+
session: session_create_params.Session | Omit = omit,
|
|
543
666
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
544
667
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
545
668
|
extra_headers: Headers | None = None,
|
|
546
669
|
extra_query: Query | None = None,
|
|
547
670
|
extra_body: Body | None = None,
|
|
548
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
671
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
549
672
|
) -> SessionCreateResponse:
|
|
550
673
|
"""
|
|
551
674
|
Allocates a new browser session for the user, with optional configurations for
|
|
@@ -579,6 +702,39 @@ class AsyncSessionsResource(AsyncAPIResource):
|
|
|
579
702
|
cast_to=SessionCreateResponse,
|
|
580
703
|
)
|
|
581
704
|
|
|
705
|
+
async def retrieve(
|
|
706
|
+
self,
|
|
707
|
+
session_id: str,
|
|
708
|
+
*,
|
|
709
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
710
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
711
|
+
extra_headers: Headers | None = None,
|
|
712
|
+
extra_query: Query | None = None,
|
|
713
|
+
extra_body: Body | None = None,
|
|
714
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
715
|
+
) -> SessionRetrieveResponse:
|
|
716
|
+
"""
|
|
717
|
+
Retrieves detailed information about a specific browser session.
|
|
718
|
+
|
|
719
|
+
Args:
|
|
720
|
+
extra_headers: Send extra headers
|
|
721
|
+
|
|
722
|
+
extra_query: Add additional query parameters to the request
|
|
723
|
+
|
|
724
|
+
extra_body: Add additional JSON properties to the request
|
|
725
|
+
|
|
726
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
727
|
+
"""
|
|
728
|
+
if not session_id:
|
|
729
|
+
raise ValueError(f"Expected a non-empty value for `session_id` but received {session_id!r}")
|
|
730
|
+
return await self._get(
|
|
731
|
+
f"/v1/sessions/{session_id}",
|
|
732
|
+
options=make_request_options(
|
|
733
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
734
|
+
),
|
|
735
|
+
cast_to=SessionRetrieveResponse,
|
|
736
|
+
)
|
|
737
|
+
|
|
582
738
|
async def delete(
|
|
583
739
|
self,
|
|
584
740
|
session_id: str,
|
|
@@ -588,7 +744,7 @@ class AsyncSessionsResource(AsyncAPIResource):
|
|
|
588
744
|
extra_headers: Headers | None = None,
|
|
589
745
|
extra_query: Query | None = None,
|
|
590
746
|
extra_body: Body | None = None,
|
|
591
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
747
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
592
748
|
) -> SuccessResponse:
|
|
593
749
|
"""
|
|
594
750
|
Deletes the browser session associated with the provided browser session ID.
|
|
@@ -622,7 +778,7 @@ class AsyncSessionsResource(AsyncAPIResource):
|
|
|
622
778
|
extra_headers: Headers | None = None,
|
|
623
779
|
extra_query: Query | None = None,
|
|
624
780
|
extra_body: Body | None = None,
|
|
625
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
781
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
626
782
|
) -> SessionCopyResponse:
|
|
627
783
|
"""
|
|
628
784
|
Copies the currently selected text to the clipboard
|
|
@@ -654,13 +810,13 @@ class AsyncSessionsResource(AsyncAPIResource):
|
|
|
654
810
|
end_y: int,
|
|
655
811
|
start_x: int,
|
|
656
812
|
start_y: int,
|
|
657
|
-
button: Literal["left", "middle", "right"] |
|
|
813
|
+
button: Literal["left", "middle", "right"] | Omit = omit,
|
|
658
814
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
659
815
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
660
816
|
extra_headers: Headers | None = None,
|
|
661
817
|
extra_query: Query | None = None,
|
|
662
818
|
extra_body: Body | None = None,
|
|
663
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
819
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
664
820
|
) -> SessionDragAndDropResponse:
|
|
665
821
|
"""
|
|
666
822
|
Performs a drag and drop operation from start coordinates to end coordinates
|
|
@@ -714,7 +870,7 @@ class AsyncSessionsResource(AsyncAPIResource):
|
|
|
714
870
|
extra_headers: Headers | None = None,
|
|
715
871
|
extra_query: Query | None = None,
|
|
716
872
|
extra_body: Body | None = None,
|
|
717
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
873
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
718
874
|
) -> SessionGotoResponse:
|
|
719
875
|
"""
|
|
720
876
|
Navigates the browser session to the specified URL
|
|
@@ -741,6 +897,39 @@ class AsyncSessionsResource(AsyncAPIResource):
|
|
|
741
897
|
cast_to=SessionGotoResponse,
|
|
742
898
|
)
|
|
743
899
|
|
|
900
|
+
async def list_pages(
|
|
901
|
+
self,
|
|
902
|
+
session_id: str,
|
|
903
|
+
*,
|
|
904
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
905
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
906
|
+
extra_headers: Headers | None = None,
|
|
907
|
+
extra_query: Query | None = None,
|
|
908
|
+
extra_body: Body | None = None,
|
|
909
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
910
|
+
) -> SessionListPagesResponse:
|
|
911
|
+
"""
|
|
912
|
+
Retrieves a list of pages associated with a specific browser session.
|
|
913
|
+
|
|
914
|
+
Args:
|
|
915
|
+
extra_headers: Send extra headers
|
|
916
|
+
|
|
917
|
+
extra_query: Add additional query parameters to the request
|
|
918
|
+
|
|
919
|
+
extra_body: Add additional JSON properties to the request
|
|
920
|
+
|
|
921
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
922
|
+
"""
|
|
923
|
+
if not session_id:
|
|
924
|
+
raise ValueError(f"Expected a non-empty value for `session_id` but received {session_id!r}")
|
|
925
|
+
return await self._get(
|
|
926
|
+
f"/v1/sessions/{session_id}/pages",
|
|
927
|
+
options=make_request_options(
|
|
928
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
929
|
+
),
|
|
930
|
+
cast_to=SessionListPagesResponse,
|
|
931
|
+
)
|
|
932
|
+
|
|
744
933
|
async def paste(
|
|
745
934
|
self,
|
|
746
935
|
session_id: str,
|
|
@@ -751,7 +940,7 @@ class AsyncSessionsResource(AsyncAPIResource):
|
|
|
751
940
|
extra_headers: Headers | None = None,
|
|
752
941
|
extra_query: Query | None = None,
|
|
753
942
|
extra_body: Body | None = None,
|
|
754
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
943
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
755
944
|
) -> SessionPasteResponse:
|
|
756
945
|
"""
|
|
757
946
|
Pastes text at the current cursor position
|
|
@@ -787,7 +976,7 @@ class AsyncSessionsResource(AsyncAPIResource):
|
|
|
787
976
|
extra_headers: Headers | None = None,
|
|
788
977
|
extra_query: Query | None = None,
|
|
789
978
|
extra_body: Body | None = None,
|
|
790
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
979
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
791
980
|
) -> SessionRetrieveDownloadsResponse:
|
|
792
981
|
"""Retrieves metadata of files downloaded during a browser session.
|
|
793
982
|
|
|
@@ -822,7 +1011,7 @@ class AsyncSessionsResource(AsyncAPIResource):
|
|
|
822
1011
|
extra_headers: Headers | None = None,
|
|
823
1012
|
extra_query: Query | None = None,
|
|
824
1013
|
extra_body: Body | None = None,
|
|
825
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1014
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
826
1015
|
) -> AsyncBinaryAPIResponse:
|
|
827
1016
|
"""
|
|
828
1017
|
Takes a screenshot of the current browser session and returns it as an image.
|
|
@@ -854,14 +1043,15 @@ class AsyncSessionsResource(AsyncAPIResource):
|
|
|
854
1043
|
delta_y: int,
|
|
855
1044
|
x: int,
|
|
856
1045
|
y: int,
|
|
857
|
-
delta_x: int |
|
|
858
|
-
steps: int |
|
|
1046
|
+
delta_x: int | Omit = omit,
|
|
1047
|
+
steps: int | Omit = omit,
|
|
1048
|
+
use_os: bool | Omit = omit,
|
|
859
1049
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
860
1050
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
861
1051
|
extra_headers: Headers | None = None,
|
|
862
1052
|
extra_query: Query | None = None,
|
|
863
1053
|
extra_body: Body | None = None,
|
|
864
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
1054
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
865
1055
|
) -> SessionScrollResponse:
|
|
866
1056
|
"""
|
|
867
1057
|
Performs a scroll action at the specified coordinates
|
|
@@ -877,6 +1067,8 @@ class AsyncSessionsResource(AsyncAPIResource):
|
|
|
877
1067
|
|
|
878
1068
|
steps: Number of steps to break the scroll into for smoother scrolling
|
|
879
1069
|
|
|
1070
|
+
use_os: Whether to use the OS scroll or the Playwright scroll
|
|
1071
|
+
|
|
880
1072
|
extra_headers: Send extra headers
|
|
881
1073
|
|
|
882
1074
|
extra_query: Add additional query parameters to the request
|
|
@@ -896,6 +1088,7 @@ class AsyncSessionsResource(AsyncAPIResource):
|
|
|
896
1088
|
"y": y,
|
|
897
1089
|
"delta_x": delta_x,
|
|
898
1090
|
"steps": steps,
|
|
1091
|
+
"use_os": use_os,
|
|
899
1092
|
},
|
|
900
1093
|
session_scroll_params.SessionScrollParams,
|
|
901
1094
|
),
|
|
@@ -905,6 +1098,54 @@ class AsyncSessionsResource(AsyncAPIResource):
|
|
|
905
1098
|
cast_to=SessionScrollResponse,
|
|
906
1099
|
)
|
|
907
1100
|
|
|
1101
|
+
async def upload_file(
|
|
1102
|
+
self,
|
|
1103
|
+
session_id: str,
|
|
1104
|
+
*,
|
|
1105
|
+
file: FileTypes,
|
|
1106
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1107
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1108
|
+
extra_headers: Headers | None = None,
|
|
1109
|
+
extra_query: Query | None = None,
|
|
1110
|
+
extra_body: Body | None = None,
|
|
1111
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1112
|
+
) -> SessionUploadFileResponse:
|
|
1113
|
+
"""
|
|
1114
|
+
Upload files directly to a browser session for use with web forms and file
|
|
1115
|
+
inputs.
|
|
1116
|
+
|
|
1117
|
+
Files are saved to the session's uploads directory and can be referenced in CDP
|
|
1118
|
+
commands.
|
|
1119
|
+
|
|
1120
|
+
Args:
|
|
1121
|
+
file: File to upload to the browser session
|
|
1122
|
+
|
|
1123
|
+
extra_headers: Send extra headers
|
|
1124
|
+
|
|
1125
|
+
extra_query: Add additional query parameters to the request
|
|
1126
|
+
|
|
1127
|
+
extra_body: Add additional JSON properties to the request
|
|
1128
|
+
|
|
1129
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
1130
|
+
"""
|
|
1131
|
+
if not session_id:
|
|
1132
|
+
raise ValueError(f"Expected a non-empty value for `session_id` but received {session_id!r}")
|
|
1133
|
+
body = deepcopy_minimal({"file": file})
|
|
1134
|
+
files = extract_files(cast(Mapping[str, object], body), paths=[["file"]])
|
|
1135
|
+
# It should be noted that the actual Content-Type header that will be
|
|
1136
|
+
# sent to the server will contain a `boundary` parameter, e.g.
|
|
1137
|
+
# multipart/form-data; boundary=---abc--
|
|
1138
|
+
extra_headers = {"Content-Type": "multipart/form-data", **(extra_headers or {})}
|
|
1139
|
+
return await self._post(
|
|
1140
|
+
f"/v1/sessions/{session_id}/uploads",
|
|
1141
|
+
body=await async_maybe_transform(body, session_upload_file_params.SessionUploadFileParams),
|
|
1142
|
+
files=files,
|
|
1143
|
+
options=make_request_options(
|
|
1144
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
1145
|
+
),
|
|
1146
|
+
cast_to=SessionUploadFileResponse,
|
|
1147
|
+
)
|
|
1148
|
+
|
|
908
1149
|
|
|
909
1150
|
class SessionsResourceWithRawResponse:
|
|
910
1151
|
def __init__(self, sessions: SessionsResource) -> None:
|
|
@@ -913,6 +1154,9 @@ class SessionsResourceWithRawResponse:
|
|
|
913
1154
|
self.create = to_raw_response_wrapper(
|
|
914
1155
|
sessions.create,
|
|
915
1156
|
)
|
|
1157
|
+
self.retrieve = to_raw_response_wrapper(
|
|
1158
|
+
sessions.retrieve,
|
|
1159
|
+
)
|
|
916
1160
|
self.delete = to_raw_response_wrapper(
|
|
917
1161
|
sessions.delete,
|
|
918
1162
|
)
|
|
@@ -925,6 +1169,9 @@ class SessionsResourceWithRawResponse:
|
|
|
925
1169
|
self.goto = to_raw_response_wrapper(
|
|
926
1170
|
sessions.goto,
|
|
927
1171
|
)
|
|
1172
|
+
self.list_pages = to_raw_response_wrapper(
|
|
1173
|
+
sessions.list_pages,
|
|
1174
|
+
)
|
|
928
1175
|
self.paste = to_raw_response_wrapper(
|
|
929
1176
|
sessions.paste,
|
|
930
1177
|
)
|
|
@@ -938,6 +1185,9 @@ class SessionsResourceWithRawResponse:
|
|
|
938
1185
|
self.scroll = to_raw_response_wrapper(
|
|
939
1186
|
sessions.scroll,
|
|
940
1187
|
)
|
|
1188
|
+
self.upload_file = to_raw_response_wrapper(
|
|
1189
|
+
sessions.upload_file,
|
|
1190
|
+
)
|
|
941
1191
|
|
|
942
1192
|
@cached_property
|
|
943
1193
|
def all(self) -> AllResourceWithRawResponse:
|
|
@@ -967,6 +1217,9 @@ class AsyncSessionsResourceWithRawResponse:
|
|
|
967
1217
|
self.create = async_to_raw_response_wrapper(
|
|
968
1218
|
sessions.create,
|
|
969
1219
|
)
|
|
1220
|
+
self.retrieve = async_to_raw_response_wrapper(
|
|
1221
|
+
sessions.retrieve,
|
|
1222
|
+
)
|
|
970
1223
|
self.delete = async_to_raw_response_wrapper(
|
|
971
1224
|
sessions.delete,
|
|
972
1225
|
)
|
|
@@ -979,6 +1232,9 @@ class AsyncSessionsResourceWithRawResponse:
|
|
|
979
1232
|
self.goto = async_to_raw_response_wrapper(
|
|
980
1233
|
sessions.goto,
|
|
981
1234
|
)
|
|
1235
|
+
self.list_pages = async_to_raw_response_wrapper(
|
|
1236
|
+
sessions.list_pages,
|
|
1237
|
+
)
|
|
982
1238
|
self.paste = async_to_raw_response_wrapper(
|
|
983
1239
|
sessions.paste,
|
|
984
1240
|
)
|
|
@@ -992,6 +1248,9 @@ class AsyncSessionsResourceWithRawResponse:
|
|
|
992
1248
|
self.scroll = async_to_raw_response_wrapper(
|
|
993
1249
|
sessions.scroll,
|
|
994
1250
|
)
|
|
1251
|
+
self.upload_file = async_to_raw_response_wrapper(
|
|
1252
|
+
sessions.upload_file,
|
|
1253
|
+
)
|
|
995
1254
|
|
|
996
1255
|
@cached_property
|
|
997
1256
|
def all(self) -> AsyncAllResourceWithRawResponse:
|
|
@@ -1021,6 +1280,9 @@ class SessionsResourceWithStreamingResponse:
|
|
|
1021
1280
|
self.create = to_streamed_response_wrapper(
|
|
1022
1281
|
sessions.create,
|
|
1023
1282
|
)
|
|
1283
|
+
self.retrieve = to_streamed_response_wrapper(
|
|
1284
|
+
sessions.retrieve,
|
|
1285
|
+
)
|
|
1024
1286
|
self.delete = to_streamed_response_wrapper(
|
|
1025
1287
|
sessions.delete,
|
|
1026
1288
|
)
|
|
@@ -1033,6 +1295,9 @@ class SessionsResourceWithStreamingResponse:
|
|
|
1033
1295
|
self.goto = to_streamed_response_wrapper(
|
|
1034
1296
|
sessions.goto,
|
|
1035
1297
|
)
|
|
1298
|
+
self.list_pages = to_streamed_response_wrapper(
|
|
1299
|
+
sessions.list_pages,
|
|
1300
|
+
)
|
|
1036
1301
|
self.paste = to_streamed_response_wrapper(
|
|
1037
1302
|
sessions.paste,
|
|
1038
1303
|
)
|
|
@@ -1046,6 +1311,9 @@ class SessionsResourceWithStreamingResponse:
|
|
|
1046
1311
|
self.scroll = to_streamed_response_wrapper(
|
|
1047
1312
|
sessions.scroll,
|
|
1048
1313
|
)
|
|
1314
|
+
self.upload_file = to_streamed_response_wrapper(
|
|
1315
|
+
sessions.upload_file,
|
|
1316
|
+
)
|
|
1049
1317
|
|
|
1050
1318
|
@cached_property
|
|
1051
1319
|
def all(self) -> AllResourceWithStreamingResponse:
|
|
@@ -1075,6 +1343,9 @@ class AsyncSessionsResourceWithStreamingResponse:
|
|
|
1075
1343
|
self.create = async_to_streamed_response_wrapper(
|
|
1076
1344
|
sessions.create,
|
|
1077
1345
|
)
|
|
1346
|
+
self.retrieve = async_to_streamed_response_wrapper(
|
|
1347
|
+
sessions.retrieve,
|
|
1348
|
+
)
|
|
1078
1349
|
self.delete = async_to_streamed_response_wrapper(
|
|
1079
1350
|
sessions.delete,
|
|
1080
1351
|
)
|
|
@@ -1087,6 +1358,9 @@ class AsyncSessionsResourceWithStreamingResponse:
|
|
|
1087
1358
|
self.goto = async_to_streamed_response_wrapper(
|
|
1088
1359
|
sessions.goto,
|
|
1089
1360
|
)
|
|
1361
|
+
self.list_pages = async_to_streamed_response_wrapper(
|
|
1362
|
+
sessions.list_pages,
|
|
1363
|
+
)
|
|
1090
1364
|
self.paste = async_to_streamed_response_wrapper(
|
|
1091
1365
|
sessions.paste,
|
|
1092
1366
|
)
|
|
@@ -1100,6 +1374,9 @@ class AsyncSessionsResourceWithStreamingResponse:
|
|
|
1100
1374
|
self.scroll = async_to_streamed_response_wrapper(
|
|
1101
1375
|
sessions.scroll,
|
|
1102
1376
|
)
|
|
1377
|
+
self.upload_file = async_to_streamed_response_wrapper(
|
|
1378
|
+
sessions.upload_file,
|
|
1379
|
+
)
|
|
1103
1380
|
|
|
1104
1381
|
@cached_property
|
|
1105
1382
|
def all(self) -> AsyncAllResourceWithStreamingResponse:
|