DOM մանիպուլյացիայի API
@grant CAT.agent.dom
DOM մանիպուլյացիայի API-ն ապահովում է զննարկչի էջի ամբողջական ավտոմատացում. նավիգացիա, բովանդակության ընթերցում, սքրինշոթներ, ձևերի հետ փոխազդեցություն և DOM մոնիտորինգ:
Ներդիրների կառավարում
listTabs — ներդիրների ցուցակագրում
const tabs = await CAT.agent.dom.listTabs();
Վերադարձնում է տեղեկատվություն յուրաքանչյուր բաց ներդիրի մասին:
Վերադարձնում է TabInfo[]՝
| Դաշտ | Տիպ | Նկարագրություն |
|---|---|---|
tabId | number | Ներդիրի ID |
url | string | Ընթացիկ URL |
title | string | Էջի վերնագիր |
active | boolean | Արդյոք սա ներկայումս ակտիվ ներդիրն է |
windowId | number | Այն պատկանող պատուհանի ID |
discarded | boolean | Արդյոք այն դեն նետվել է (կասեցված) |
Նավիգացիա
navigate — էջի նավիգացիա
const result = await CAT.agent.dom.navigate(url, options?);
Պարամետրեր՝
| Պարամետր | Տիպ | Լռելյայն | Նկարագրություն |
|---|---|---|---|
url | string | — | Թիրախային URL (պարտադիր) |
options.tabId | number | ընթացիկ ակտիվ ներդիր | Որ ներդիրն օգտագործել |
options.waitUntil | boolean | true | Արդյոք սպասել էջի բեռնման ավարտին |
options.timeout | number | 30000 | Թայմաութ միլիվայրկյաններով |
Վերադարձնում է NavigateResult՝
{ tabId: number; url: string; title: string }
Բովանդակության ընթերցում
readPage — էջի բովանդակության ընթերցում
const page = await CAT.agent.dom.readPage(options?);
Փոխակերպում է էջի DOM-ը կառուցվածքային տեքստի՝ ավտոմատ կերպով հեռացնելով անկապ տարրերը, ինչպիսիք են <script>-ը, <style>-ը, <noscript>-ը, <svg>-ը և <link[rel=stylesheet]>-ը:
Պարամետրեր՝
| Պարամետր | Տիպ | Լռելյայն | Նկարագրություն |
|---|---|---|---|
options.tabId | number | ընթացիկ ակտիվ ներդիր | Որ ներդիրն օգտագործել |
options.selector | string | — | CSS սելեկտոր. վերադարձվում է միայն համընկնած տարրի բովանդակությունը |
options.maxLength | number | — | Բովանդակության առավելագույն նիշեր. դրանից ավելին կտրվում է |
options.removeTags | string[] | — | Հեռացվող լրացուցիչ պիտակների անուններ |
Վերադարձնում է PageContent՝
| Դաշտ | Տիպ | Նկարագրություն |
|---|---|---|
title | string | Էջի վերնագիր |
url | string | Էջի URL |
html | string | Մշակված էջի տեքստային բովանդակություն |
truncated | boolean | Արդյոք բովանդակությունը կտրվել է |
totalLength | number | Բնօրինակ բովանդակության ընդհանուր երկարությունը |
screenshot — սքրինշոթի նկարահանում
const shot = await CAT.agent.dom.screenshot(options?);
Պարամետրեր՝
| Պարամետր | Տիպ | Լռելյայն | Նկարագրություն |
|---|---|---|---|
options.tabId | number | ընթացիկ ակտիվ ներդիր | Որ ներդիրն օգտագործել |
options.quality | number | 80 | JPEG որակ (0-100) |
options.fullPage | boolean | false | Նկարահանել ամբողջ էջը |
options.selector | string | — | CSS սելեկտոր. նկարահանել միայն համընկնած տարրի տարածքը |
options.saveTo | string | — | Պահպանման ուղի OPFS աշխատանքային տարածքում |
Վերադարձնում է ScreenshotResult՝
| Դաշտ | Տիպ | Նկարագրություն |
|---|---|---|
dataUrl | string | base64 տվյալների URL |
path | string | OPFS պահպանման ուղի (երբ օ գտագործվում է saveTo) |
size | number | Ֆայլի չափ (երբ օգտագործվում է saveTo) |
Ինչպե՞ս է ընտրվում նկարահանման ռեժիմը՝
| Սցենար | Վարքագիծ |
|---|---|
selector տրված է | Գտնում է տարրի սահմանները CDP-ի միջոցով և կտրում է սքրինշոթը |
| Ֆոնային ներդիր | Փորձում է CDP սքրինշոթ. եթե ձախողվում է, ակտիվացնում է ներդիրը և օգտագործում captureVisibleTab |
| Առաջին պլանի ներդիր | Ուղղակիորեն օգտագործում է captureVisibleTab |
// Save a screenshot to OPFS
const shot = await CAT.agent.dom.screenshot({
saveTo: "screenshots/page.png",
quality: 90
});
console.log(`Saved to ${shot.path}, size ${shot.size} bytes`);