@itd-api/captcha / CaptchaHandler
Interface: CaptchaHandler
Defined in: handler.ts:25
Контракт одного провайдера капчи: всё, чем один виджет отличается от другого.
Перехват навигации, ожидание, клик и повторы одинаковы для всех виджетов и в реализацию не входят. Свой провайдер достаточно описать этим интерфейсом и передать в solveCaptcha.
Example
const myCaptcha: CaptchaHandler = {
type: 'my-captcha',
label: 'моей капчи',
buildPage: ({ theme }) => `<!doctype html>…`,
widgetReadySelector: '#widget',
checkboxOffsetX: 30,
readState: (page) => page.evaluate(() => ({ token: null, error: null })),
isPermanentWidgetError: () => false,
};
const token = await solveCaptcha(myCaptcha);Properties
checkboxOffsetX
readonly checkboxOffsetX: number;Defined in: handler.ts:35
Насколько правее левого края контейнера находится чекбокс, px.
label
readonly label: string;Defined in: handler.ts:29
Как назвать виджет в сообщении об ошибке.
type
readonly type: CaptchaType;Defined in: handler.ts:27
Имя провайдера.
widgetReadySelector
readonly widgetReadySelector: string;Defined in: handler.ts:33
Селектор, по которому видно, что виджет отрисовался.
Methods
buildPage()
buildPage(input): string;Defined in: handler.ts:31
Собирает страницу с одним виджетом. Ключ и адрес виджета обработчик хранит сам.
Parameters
input
theme
Returns
string
isPermanentWidgetError()
isPermanentWidgetError(code): boolean;Defined in: handler.ts:39
Постоянна ли ошибка виджета с таким кодом: повтор её не исправит.
Parameters
code
string
Returns
boolean
readState()
readState(page): Promise<WidgetState>;Defined in: handler.ts:37
Читает результат виджета со страницы.
Parameters
page
Returns
Promise<WidgetState>