К содержимому

Документация

JavaScript SDK: BrowserPage: действия на странице

Страницу возвращает await ctx.browser().open(url). Действия выполняются асинхронно. После клика или перехода дождитесь новых данных; всегда вызывайте close() в finally.

Примеры — отдельные фрагменты тела async function run(ctx). Используйте await только для методов с Promise в сигнатуре.

Как получить объект

const page = await ctx.browser().open(ctx.param('catalog_url', 'https://example.com'));
try {
  await page.waitFor('.product');
  const html = await page.content();
  ctx.log(String(html.length));
} finally {
  await page.close();
}

Методы

goto

page.goto(url) → Promise<BrowserPage>

Перейти на другой URL в той же браузерной странице.

const result = await page.goto('https://example.com/catalog?page=2');

click

page.click(selector, timeoutMs) → Promise<BrowserPage>

Нажать на первый элемент по селектору.

const result = await page.click('button.next');

type

page.type(selector, text) → Promise<BrowserPage>

Ввести текст в найденное поле.

const result = await page.type('input.search', 'товар');

scroll

page.scroll(times, delayMs) → Promise<BrowserPage>

Прокрутить страницу вниз несколькими шагами с паузами.

const result = await page.scroll();

waitFor

page.waitFor(selector, timeoutMs) → Promise<BrowserPage>

Дождаться появления элемента по селектору.

const result = await page.waitFor('.product');

hover

page.hover(selector, timeoutMs) → Promise<BrowserPage>

Навести указатель, чтобы раскрыть меню или подсказку: page.hover('.catalog-menu');.

const result = await page.hover('.catalog-menu');

scrollTo

page.scrollTo(selector, timeoutMs) → Promise<BrowserPage>

Прокрутить страницу до конкретного элемента: page.scrollTo('.product-card');.

const result = await page.scrollTo('.product');

select

page.select(selector, value, timeoutMs) → Promise<BrowserPage>

Выбрать значение обычного списка: page.select('select.city', 'perm');.

const result = await page.select('select.city', 'perm');

press

page.press(selector, key, timeoutMs) → Promise<BrowserPage>

Нажать клавишу в элементе: page.press('input.search', 'Enter');.

const result = await page.press('input.search', 'Enter');

content

page.content() → Promise<string>

Получить текущий HTML после действий браузера.

const result = await page.content();

screenshot

page.screenshot() → Promise<string>

Сохранить изображение текущей страницы.

const result = await page.screenshot();

close

page.close() → Promise<void>

Освобождает открытую страницу. Вызывайте в finally, даже если предыдущее действие завершилось ошибкой.

await page.close();

captureResponses

page.captureResponses(patterns) → Promise<BrowserPage>

Начать захват XHR/fetch по маскам полного URL. До 20 масок, до 1024 символов каждая. Новая настройка очищает старый буфер, [] отключает захват. Уже прошедшие запросы не восстанавливаются: для первого открытия используйте второй аргумент browser().open().

await page.captureResponses(['*/api/products*']);

responses

page.responses() → Promise<object>

Возвращает ответы сети, захваченные через captureResponses(). Содержимое доступно после соответствующих действий на странице.

const result = await page.responses();

waitForResponse

page.waitForResponse(pattern, timeoutMs) → Promise<object | null>

Ожидает ответ сети, соответствующий шаблону. Задавайте ограниченный таймаут и проверяйте результат null.

const result = await page.waitForResponse('*/api/products*');

solveCaptcha

page.solveCaptcha(hints) → Promise<BrowserPage>

Пройти поддерживаемую проверку в текущей странице. Обычно выполняется автоматически.

await page.solveCaptcha({ success_selector: '.loaded-products' });

Элемент успеха должен появиться только после проверки. Отдельная квота; ключи и изображения вручную отправлять не нужно. Ошибка или неизвестная проверка останавливает выполнение.

Параметры до перехода можно передать третьим аргументом open(url, [], hints). Поддерживаются kind, sitekey, action, invisible, callback, success_selector, submit_selector, image_selector, instructions_selector, answer_selector.

Полный справочник CAPTCHA

SDK и REST API для CAPTCHA описывает все hints, значения по умолчанию, явный вызов, отключение, проверку результата, агенты, пределы и ошибки. Руководство пользователя и актуальные цены помогут настроить функцию и оплату.

Для выбора объектов используется kind: "yandex_image"; обычно тип определяется автоматически. image_selector указывает только картинку задания, instructions_selector порядок выбора, success_selector новый результат успешной операции. Список доменов целевых сайтов не нужен. Неизвестный вариант завершается ошибкой. Не запускайте бесконечные повторы при отказе.

Для yandex_text параметр answer_selector указывает поле текстового ответа, если оно не определилось автоматически. Полный контракт hints приведён в справочнике CAPTCHA API.