{
    "clearInput": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string"
            },
            "options": {
                "type": "object",
                "properties": {
                    "timeout": {
                        "type": "number"
                    },
                    "blur": {
                        "type": "boolean"
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method fetches an element with `selector`, waits for actionability checks, focuses the element, clear it and triggers an input event. If the element matching selector is not an <input>, <textarea> or [contenteditable] element, this method throws an error."
    },
    "dragDropSelector": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string"
            },
            "to": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "mouseDownRelativeToSelector": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "options": {
                "type": "object",
                "properties": {
                    "steps": {
                        "type": "number",
                        "default": 1
                    },
                    "skipMouseUp": {
                        "type": "boolean"
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector",
            "to"
        ],
        "description": "This method fetches an element with `selector`, and move it to the position given by user. If there's no element matching `selector`, the method waits until a matching element appears in the DOM."
    },
    "mouseFromTo": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "from": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "to": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "options": {
                "type": "object",
                "properties": {
                    "steps": {
                        "type": "number",
                        "default": 1
                    },
                    "skipMouseUp": {
                        "type": "boolean"
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "from",
            "to"
        ],
        "description": "This method will perform mouse down, move,and up from to selected location."
    },
    "scrollSelector": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string"
            },
            "scrollProperty": {
                "type": "object",
                "properties": {
                    "top": {
                        "type": "number"
                    },
                    "left": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector",
            "scrollProperty"
        ],
        "description": "This method fetches an element with `selector`, and set the selector scrollLeft and scrollTop. If there's no element matching `selector`, the method waits until a matching element appears in the DOM."
    },
    "mouseDownOnSelector": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string"
            },
            "point": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "options": {
                "type": "object",
                "properties": {
                    "steps": {
                        "type": "number",
                        "default": 1
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method fetches an element with `selector`, and perform mousedown on the center of selector. If there's no element matching `selector`, the method waits until a matching element appears in the DOM."
    },
    "mouseMoveToSelector": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string"
            },
            "point": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "options": {
                "type": "object",
                "properties": {
                    "steps": {
                        "type": "number",
                        "default": 1
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method fetches an element with `selector`, and move the mouse to center of selector. If there's no element matching `selector`, the method waits until a matching element appears in the DOM."
    },
    "setSelectorSize": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string"
            },
            "width": {
                "type": "string"
            },
            "height": {
                "type": "string"
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method fetches an element with `selector`, set the height and with. If there's no element matching `selector`, the method waits until a matching element appears in the DOM."
    },
    "selectorMouseWheel": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string"
            },
            "eventInitDict": {
                "type": "object",
                "properties": {
                    "deltaMode": {
                        "type": "number"
                    },
                    "deltaX": {
                        "type": "number"
                    },
                    "deltaY": {
                        "type": "number"
                    },
                    "deltaZ": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method fetches an element with `selector`, and dispatch WheelEvent. If there's no element matching `selector`, the method waits until a matching element appears in the DOM."
    },
    "touchStart": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string"
            },
            "page": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "screen": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "client": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "options": {
                "type": "object",
                "properties": {
                    "bubbles": {
                        "type": "boolean",
                        "default": true
                    },
                    "cancelable": {
                        "type": "boolean",
                        "default": true
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method fetches an element with `selector`, and dispatch touchstart event. If there's no element matching `selector`, the method waits until a matching element appears in the DOM."
    },
    "touchMove": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string"
            },
            "page": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "screen": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "client": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "options": {
                "type": "object",
                "properties": {
                    "bubbles": {
                        "type": "boolean",
                        "default": true
                    },
                    "cancelable": {
                        "type": "boolean",
                        "default": true
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method fetches an element with `selector`, and dispatch touchmove event. If there's no element matching `selector`, the method waits until a matching element appears in the DOM."
    },
    "touchEnd": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string"
            },
            "page": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "screen": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "client": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "options": {
                "type": "object",
                "properties": {
                    "bubbles": {
                        "type": "boolean",
                        "default": true
                    },
                    "cancelable": {
                        "type": "boolean",
                        "default": true
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method fetches an element with `selector`, and dispatch touchend event. If there's no element matching `selector`, the method waits until a matching element appears in the DOM."
    },
    "touchCancel": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string"
            },
            "page": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "screen": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "client": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "options": {
                "type": "object",
                "properties": {
                    "bubbles": {
                        "type": "boolean",
                        "default": true
                    },
                    "cancelable": {
                        "type": "boolean",
                        "default": true
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method fetches an element with `selector`, and dispatch touchcancel event. If there's no element matching `selector`, the method waits until a matching element appears in the DOM."
    },
    "touchFromTo": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string"
            },
            "pageFrom": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "pageTo": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "clientFrom": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "clientTo": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "screenFrom": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "screenTo": {
                "type": "object",
                "properties": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "additionalProperties": false
            },
            "options": {
                "type": "object",
                "properties": {
                    "bubbles": {
                        "type": "boolean",
                        "default": true
                    },
                    "cancelable": {
                        "type": "boolean",
                        "default": true
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method fetches an element with `selector`, and dispatch  touchstart,touchmove and touchend event. If there's no element matching `selector`, the method waits until a matching element appears in the DOM."
    },
    "waitForSelector": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string",
                "description": "A selector to query for. See [working with selectors](https://playwright.dev/docs/selectors) for more details."
            },
            "options": {
                "type": "object",
                "properties": {
                    "state": {
                        "type": "string",
                        "enum": [
                            "attached",
                            "detached",
                            "visible",
                            "hidden"
                        ],
                        "description": "Defaults to `'visible'`. Can be either:\n- `'attached'` - wait for element to be present in DOM.\n- `'detached'` - wait for element to not be present in DOM.\n- `'visible'` - wait for element to have non-empty bounding box and no `visibility:hidden`. Note that element without   any content or with `display:none` has an empty bounding box and is not considered visible.\n- `'hidden'` - wait for element to be either detached from DOM, or have an empty bounding box or `visibility:hidden`.   This is opposite to the `'visible'` option."
                    },
                    "strict": {
                        "type": "boolean",
                        "description": "When true, the call requires selector to resolve to a single element. If given selector resolves to more then one element, the call throws an exception."
                    },
                    "timeout": {
                        "type": "number",
                        "description": "Maximum time in milliseconds, defaults to 30 seconds, pass `0` to disable timeout. The default value can be changed by using the [browserContext.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout) or [page.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-page#page-set-default-timeout) methods."
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector",
            "options"
        ],
        "description": "Returns when element specified by selector satisfies `state` option. Returns `null` if waiting for `hidden` or `detached`.\n\n> NOTE: Playwright automatically waits for element to be ready before performing an action. Using [Locator] objects and web-first assertions make the code wait-for-selector-free.\n\nWait for the `selector` to satisfy `state` option (either appear/disappear from dom, or become visible/hidden). If at the moment of calling the method `selector` already satisfies the condition, the method will return immediately. If the selector doesn't satisfy the condition for the `timeout` milliseconds, the function will throw.\n\nThis method works across navigations:\n\n```js const { chromium } = require('playwright');  // Or 'firefox' or 'webkit'.\n\n(async () => {   const browser = await chromium.launch();   const page = await browser.newPage();   for (let currentURL of ['https://google.com', 'https://bbc.com']) {     await page.goto(currentURL);     const element = await page.waitForSelector('img');     console.log('Loaded image: ' + await element.getAttribute('src'));   }   await browser.close(); })(); ```"
    },
    "check": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string",
                "description": "A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used. See [working with selectors](https://playwright.dev/docs/selectors) for more details."
            },
            "options": {
                "type": "object",
                "properties": {
                    "force": {
                        "type": "boolean",
                        "description": "Whether to bypass the [actionability](https://playwright.dev/docs/actionability) checks. Defaults to `false`."
                    },
                    "noWaitAfter": {
                        "type": "boolean",
                        "description": "Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as navigating to inaccessible pages. Defaults to `false`."
                    },
                    "position": {
                        "type": "object",
                        "properties": {
                            "x": {
                                "type": "number"
                            },
                            "y": {
                                "type": "number"
                            }
                        },
                        "required": [
                            "x",
                            "y"
                        ],
                        "additionalProperties": false,
                        "description": "A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element."
                    },
                    "strict": {
                        "type": "boolean",
                        "description": "When true, the call requires selector to resolve to a single element. If given selector resolves to more then one element, the call throws an exception."
                    },
                    "timeout": {
                        "type": "number",
                        "description": "Maximum time in milliseconds, defaults to 30 seconds, pass `0` to disable timeout. The default value can be changed by using the [browserContext.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout) or [page.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-page#page-set-default-timeout) methods."
                    },
                    "trial": {
                        "type": "boolean",
                        "description": "When set, this method only performs the [actionability](https://playwright.dev/docs/actionability) checks and skips the action. Defaults to `false`. Useful to wait until the element is ready for the action without performing it."
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method checks an element matching `selector` by performing the following steps: 1. Find an element matching `selector`. If there is none, wait until a matching element is attached to the DOM. 1. Ensure that matched element is a checkbox or a radio input. If not, this method throws. If the element is already    checked, this method returns immediately. 1. Wait for [actionability](https://playwright.dev/docs/actionability) checks on the matched element, unless `force` option is set. If the    element is detached during the checks, the whole action is retried. 1. Scroll the element into view if needed. 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the element. 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set. 1. Ensure that the element is now checked. If not, this method throws.\n\nWhen all steps combined have not finished during the specified `timeout`, this method throws a [TimeoutError]. Passing zero timeout disables this.\n\nShortcut for main frame's [frame.check(selector[, options])](https://playwright.dev/docs/api/class-frame#frame-check)."
    },
    "click": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string",
                "description": "A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used. See [working with selectors](https://playwright.dev/docs/selectors) for more details."
            },
            "options": {
                "type": "object",
                "properties": {
                    "button": {
                        "type": "string",
                        "enum": [
                            "left",
                            "right",
                            "middle"
                        ],
                        "description": "Defaults to `left`."
                    },
                    "clickCount": {
                        "type": "number",
                        "description": "defaults to 1. See [UIEvent.detail]."
                    },
                    "delay": {
                        "type": "number",
                        "description": "Time to wait between `mousedown` and `mouseup` in milliseconds. Defaults to 0."
                    },
                    "force": {
                        "type": "boolean",
                        "description": "Whether to bypass the [actionability](https://playwright.dev/docs/actionability) checks. Defaults to `false`."
                    },
                    "modifiers": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Alt",
                                "Control",
                                "Meta",
                                "Shift"
                            ]
                        },
                        "description": "Modifier keys to press. Ensures that only these modifiers are pressed during the operation, and then restores current modifiers back. If not specified, currently pressed modifiers are used."
                    },
                    "noWaitAfter": {
                        "type": "boolean",
                        "description": "Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as navigating to inaccessible pages. Defaults to `false`."
                    },
                    "position": {
                        "type": "object",
                        "properties": {
                            "x": {
                                "type": "number"
                            },
                            "y": {
                                "type": "number"
                            }
                        },
                        "required": [
                            "x",
                            "y"
                        ],
                        "additionalProperties": false,
                        "description": "A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element."
                    },
                    "strict": {
                        "type": "boolean",
                        "description": "When true, the call requires selector to resolve to a single element. If given selector resolves to more then one element, the call throws an exception."
                    },
                    "timeout": {
                        "type": "number",
                        "description": "Maximum time in milliseconds, defaults to 30 seconds, pass `0` to disable timeout. The default value can be changed by using the [browserContext.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout) or [page.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-page#page-set-default-timeout) methods."
                    },
                    "trial": {
                        "type": "boolean",
                        "description": "When set, this method only performs the [actionability](https://playwright.dev/docs/actionability) checks and skips the action. Defaults to `false`. Useful to wait until the element is ready for the action without performing it."
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method clicks an element matching `selector` by performing the following steps: 1. Find an element matching `selector`. If there is none, wait until a matching element is attached to the DOM. 1. Wait for [actionability](https://playwright.dev/docs/actionability) checks on the matched element, unless `force` option is set. If the    element is detached during the checks, the whole action is retried. 1. Scroll the element into view if needed. 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the element, or    the specified `position`. 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.\n\nWhen all steps combined have not finished during the specified `timeout`, this method throws a [TimeoutError]. Passing zero timeout disables this.\n\nShortcut for main frame's [frame.click(selector[, options])](https://playwright.dev/docs/api/class-frame#frame-click)."
    },
    "dblclick": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string",
                "description": "A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used. See [working with selectors](https://playwright.dev/docs/selectors) for more details."
            },
            "options": {
                "type": "object",
                "properties": {
                    "button": {
                        "type": "string",
                        "enum": [
                            "left",
                            "right",
                            "middle"
                        ],
                        "description": "Defaults to `left`."
                    },
                    "delay": {
                        "type": "number",
                        "description": "Time to wait between `mousedown` and `mouseup` in milliseconds. Defaults to 0."
                    },
                    "force": {
                        "type": "boolean",
                        "description": "Whether to bypass the [actionability](https://playwright.dev/docs/actionability) checks. Defaults to `false`."
                    },
                    "modifiers": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Alt",
                                "Control",
                                "Meta",
                                "Shift"
                            ]
                        },
                        "description": "Modifier keys to press. Ensures that only these modifiers are pressed during the operation, and then restores current modifiers back. If not specified, currently pressed modifiers are used."
                    },
                    "noWaitAfter": {
                        "type": "boolean",
                        "description": "Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as navigating to inaccessible pages. Defaults to `false`."
                    },
                    "position": {
                        "type": "object",
                        "properties": {
                            "x": {
                                "type": "number"
                            },
                            "y": {
                                "type": "number"
                            }
                        },
                        "required": [
                            "x",
                            "y"
                        ],
                        "additionalProperties": false,
                        "description": "A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element."
                    },
                    "strict": {
                        "type": "boolean",
                        "description": "When true, the call requires selector to resolve to a single element. If given selector resolves to more then one element, the call throws an exception."
                    },
                    "timeout": {
                        "type": "number",
                        "description": "Maximum time in milliseconds, defaults to 30 seconds, pass `0` to disable timeout. The default value can be changed by using the [browserContext.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout) or [page.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-page#page-set-default-timeout) methods."
                    },
                    "trial": {
                        "type": "boolean",
                        "description": "When set, this method only performs the [actionability](https://playwright.dev/docs/actionability) checks and skips the action. Defaults to `false`. Useful to wait until the element is ready for the action without performing it."
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method double clicks an element matching `selector` by performing the following steps: 1. Find an element matching `selector`. If there is none, wait until a matching element is attached to the DOM. 1. Wait for [actionability](https://playwright.dev/docs/actionability) checks on the matched element, unless `force` option is set. If the    element is detached during the checks, the whole action is retried. 1. Scroll the element into view if needed. 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to double click in the center of the    element, or the specified `position`. 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set. Note that if the    first click of the `dblclick()` triggers a navigation event, this method will throw.\n\nWhen all steps combined have not finished during the specified `timeout`, this method throws a [TimeoutError]. Passing zero timeout disables this.\n\n> NOTE: `page.dblclick()` dispatches two `click` events and a single `dblclick` event.\n\nShortcut for main frame's [frame.dblclick(selector[, options])](https://playwright.dev/docs/api/class-frame#frame-dblclick)."
    },
    "fill": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string",
                "description": "A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used. See [working with selectors](https://playwright.dev/docs/selectors) for more details."
            },
            "value": {
                "type": "string",
                "description": "Value to fill for the `<input>`, `<textarea>` or `[contenteditable]` element."
            },
            "options": {
                "type": "object",
                "properties": {
                    "force": {
                        "type": "boolean",
                        "description": "Whether to bypass the [actionability](https://playwright.dev/docs/actionability) checks. Defaults to `false`."
                    },
                    "noWaitAfter": {
                        "type": "boolean",
                        "description": "Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as navigating to inaccessible pages. Defaults to `false`."
                    },
                    "strict": {
                        "type": "boolean",
                        "description": "When true, the call requires selector to resolve to a single element. If given selector resolves to more then one element, the call throws an exception."
                    },
                    "timeout": {
                        "type": "number",
                        "description": "Maximum time in milliseconds, defaults to 30 seconds, pass `0` to disable timeout. The default value can be changed by using the [browserContext.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout) or [page.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-page#page-set-default-timeout) methods."
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector",
            "value"
        ],
        "description": "This method waits for an element matching `selector`, waits for [actionability](https://playwright.dev/docs/actionability) checks, focuses the element, fills it and triggers an `input` event after filling. Note that you can pass an empty string to clear the input field.\n\nIf the target element is not an `<input>`, `<textarea>` or `[contenteditable]` element, this method throws an error. However, if the element is inside the `<label>` element that has an associated [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), the control will be filled instead.\n\nTo send fine-grained keyboard events, use [page.type(selector, text[, options])](https://playwright.dev/docs/api/class-page#page-type).\n\nShortcut for main frame's [frame.fill(selector, value[, options])](https://playwright.dev/docs/api/class-frame#frame-fill)."
    },
    "focus": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string",
                "description": "A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used. See [working with selectors](https://playwright.dev/docs/selectors) for more details."
            },
            "options": {
                "type": "object",
                "properties": {
                    "strict": {
                        "type": "boolean",
                        "description": "When true, the call requires selector to resolve to a single element. If given selector resolves to more then one element, the call throws an exception."
                    },
                    "timeout": {
                        "type": "number",
                        "description": "Maximum time in milliseconds, defaults to 30 seconds, pass `0` to disable timeout. The default value can be changed by using the [browserContext.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout) or [page.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-page#page-set-default-timeout) methods."
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method fetches an element with `selector` and focuses it. If there's no element matching `selector`, the method waits until a matching element appears in the DOM.\n\nShortcut for main frame's [frame.focus(selector[, options])](https://playwright.dev/docs/api/class-frame#frame-focus)."
    },
    "hover": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string",
                "description": "A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used. See [working with selectors](https://playwright.dev/docs/selectors) for more details."
            },
            "options": {
                "type": "object",
                "properties": {
                    "force": {
                        "type": "boolean",
                        "description": "Whether to bypass the [actionability](https://playwright.dev/docs/actionability) checks. Defaults to `false`."
                    },
                    "modifiers": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Alt",
                                "Control",
                                "Meta",
                                "Shift"
                            ]
                        },
                        "description": "Modifier keys to press. Ensures that only these modifiers are pressed during the operation, and then restores current modifiers back. If not specified, currently pressed modifiers are used."
                    },
                    "position": {
                        "type": "object",
                        "properties": {
                            "x": {
                                "type": "number"
                            },
                            "y": {
                                "type": "number"
                            }
                        },
                        "required": [
                            "x",
                            "y"
                        ],
                        "additionalProperties": false,
                        "description": "A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element."
                    },
                    "strict": {
                        "type": "boolean",
                        "description": "When true, the call requires selector to resolve to a single element. If given selector resolves to more then one element, the call throws an exception."
                    },
                    "timeout": {
                        "type": "number",
                        "description": "Maximum time in milliseconds, defaults to 30 seconds, pass `0` to disable timeout. The default value can be changed by using the [browserContext.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout) or [page.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-page#page-set-default-timeout) methods."
                    },
                    "trial": {
                        "type": "boolean",
                        "description": "When set, this method only performs the [actionability](https://playwright.dev/docs/actionability) checks and skips the action. Defaults to `false`. Useful to wait until the element is ready for the action without performing it."
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method hovers over an element matching `selector` by performing the following steps: 1. Find an element matching `selector`. If there is none, wait until a matching element is attached to the DOM. 1. Wait for [actionability](https://playwright.dev/docs/actionability) checks on the matched element, unless `force` option is set. If the    element is detached during the checks, the whole action is retried. 1. Scroll the element into view if needed. 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to hover over the center of the element,    or the specified `position`. 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.\n\nWhen all steps combined have not finished during the specified `timeout`, this method throws a [TimeoutError]. Passing zero timeout disables this.\n\nShortcut for main frame's [frame.hover(selector[, options])](https://playwright.dev/docs/api/class-frame#frame-hover)."
    },
    "keyboard": {
        "type": "object",
        "properties": {
            "down": {
                "kind": "function",
                "type": "Promise",
                "parameters": {
                    "key": {
                        "type": "string",
                        "description": "Name of the key to press or a character to generate, such as `ArrowLeft` or `a`."
                    }
                },
                "required": [
                    "key"
                ],
                "description": "Dispatches a `keydown` event.\n\n`key` can specify the intended [keyboardEvent.key](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) value or a single character to generate the text for. A superset of the `key` values can be found [here](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values). Examples of the keys are:\n\n`F1` - `F12`, `Digit0`- `Digit9`, `KeyA`- `KeyZ`, `Backquote`, `Minus`, `Equal`, `Backslash`, `Backspace`, `Tab`, `Delete`, `Escape`, `ArrowDown`, `End`, `Enter`, `Home`, `Insert`, `PageDown`, `PageUp`, `ArrowRight`, `ArrowUp`, etc.\n\nFollowing modification shortcuts are also supported: `Shift`, `Control`, `Alt`, `Meta`, `ShiftLeft`.\n\nHolding down `Shift` will type the text that corresponds to the `key` in the upper case.\n\nIf `key` is a single character, it is case-sensitive, so the values `a` and `A` will generate different respective texts.\n\nIf `key` is a modifier key, `Shift`, `Meta`, `Control`, or `Alt`, subsequent key presses will be sent with that modifier active. To release the modifier key, use [keyboard.up(key)](https://playwright.dev/docs/api/class-keyboard#keyboard-up).\n\nAfter the key is pressed once, subsequent calls to [keyboard.down(key)](https://playwright.dev/docs/api/class-keyboard#keyboard-down) will have [repeat](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat) set to true. To release the key, use [keyboard.up(key)](https://playwright.dev/docs/api/class-keyboard#keyboard-up).\n\n> NOTE: Modifier keys DO influence `keyboard.down`. Holding down `Shift` will type the text in upper case."
            },
            "insertText": {
                "kind": "function",
                "type": "Promise",
                "parameters": {
                    "text": {
                        "type": "string",
                        "description": "Sets input to the specified text value."
                    }
                },
                "required": [
                    "text"
                ],
                "description": "Dispatches only `input` event, does not emit the `keydown`, `keyup` or `keypress` events.\n\n```js page.keyboard.insertText('嗨'); ```\n\n> NOTE: Modifier keys DO NOT effect `keyboard.insertText`. Holding down `Shift` will not type the text in upper case."
            },
            "press": {
                "kind": "function",
                "type": "Promise",
                "parameters": {
                    "key": {
                        "type": "string",
                        "description": "Name of the key to press or a character to generate, such as `ArrowLeft` or `a`."
                    },
                    "options": {
                        "type": "object",
                        "properties": {
                            "delay": {
                                "type": "number",
                                "description": "Time to wait between `keydown` and `keyup` in milliseconds. Defaults to 0."
                            }
                        },
                        "additionalProperties": false
                    }
                },
                "required": [
                    "key"
                ],
                "description": "`key` can specify the intended [keyboardEvent.key](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) value or a single character to generate the text for. A superset of the `key` values can be found [here](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values). Examples of the keys are:\n\n`F1` - `F12`, `Digit0`- `Digit9`, `KeyA`- `KeyZ`, `Backquote`, `Minus`, `Equal`, `Backslash`, `Backspace`, `Tab`, `Delete`, `Escape`, `ArrowDown`, `End`, `Enter`, `Home`, `Insert`, `PageDown`, `PageUp`, `ArrowRight`, `ArrowUp`, etc.\n\nFollowing modification shortcuts are also supported: `Shift`, `Control`, `Alt`, `Meta`, `ShiftLeft`.\n\nHolding down `Shift` will type the text that corresponds to the `key` in the upper case.\n\nIf `key` is a single character, it is case-sensitive, so the values `a` and `A` will generate different respective texts.\n\nShortcuts such as `key: \"Control+o\"` or `key: \"Control+Shift+T\"` are supported as well. When specified with the modifier, modifier is pressed and being held while the subsequent key is being pressed.\n\n```js const page = await browser.newPage(); await page.goto('https://keycode.info'); await page.keyboard.press('A'); await page.screenshot({ path: 'A.png' }); await page.keyboard.press('ArrowLeft'); await page.screenshot({ path: 'ArrowLeft.png' }); await page.keyboard.press('Shift+O'); await page.screenshot({ path: 'O.png' }); await browser.close(); ```\n\nShortcut for [keyboard.down(key)](https://playwright.dev/docs/api/class-keyboard#keyboard-down) and [keyboard.up(key)](https://playwright.dev/docs/api/class-keyboard#keyboard-up)."
            },
            "type": {
                "kind": "function",
                "type": "Promise",
                "parameters": {
                    "text": {
                        "type": "string",
                        "description": "A text to type into a focused element."
                    },
                    "options": {
                        "type": "object",
                        "properties": {
                            "delay": {
                                "type": "number",
                                "description": "Time to wait between key presses in milliseconds. Defaults to 0."
                            }
                        },
                        "additionalProperties": false
                    }
                },
                "required": [
                    "text"
                ],
                "description": "Sends a `keydown`, `keypress`/`input`, and `keyup` event for each character in the text.\n\nTo press a special key, like `Control` or `ArrowDown`, use [keyboard.press(key[, options])](https://playwright.dev/docs/api/class-keyboard#keyboard-press).\n\n```js await page.keyboard.type('Hello'); // Types instantly await page.keyboard.type('World', {delay: 100}); // Types slower, like a user ```\n\n> NOTE: Modifier keys DO NOT effect `keyboard.type`. Holding down `Shift` will not type the text in upper case. > NOTE: For characters that are not on a US keyboard, only an `input` event will be sent."
            },
            "up": {
                "kind": "function",
                "type": "Promise",
                "parameters": {
                    "key": {
                        "type": "string",
                        "description": "Name of the key to press or a character to generate, such as `ArrowLeft` or `a`."
                    }
                },
                "required": [
                    "key"
                ],
                "description": "Dispatches a `keyup` event."
            }
        },
        "required": [
            "down",
            "insertText",
            "press",
            "type",
            "up"
        ],
        "additionalProperties": false,
        "description": "Keyboard provides an api for managing a virtual keyboard. The high level api is [keyboard.type(text[, options])](https://playwright.dev/docs/api/class-keyboard#keyboard-type), which takes raw characters and generates proper keydown, keypress/input, and keyup events on your page.\n\nFor finer control, you can use [keyboard.down(key)](https://playwright.dev/docs/api/class-keyboard#keyboard-down), [keyboard.up(key)](https://playwright.dev/docs/api/class-keyboard#keyboard-up), and [keyboard.insertText(text)](https://playwright.dev/docs/api/class-keyboard#keyboard-insert-text) to manually fire events as if they were generated from a real keyboard.\n\nAn example of holding down `Shift` in order to select and delete some text:\n\n```js await page.keyboard.type('Hello World!'); await page.keyboard.press('ArrowLeft');\n\nawait page.keyboard.down('Shift'); for (let i = 0; i < ' World'.length; i++)   await page.keyboard.press('ArrowLeft'); await page.keyboard.up('Shift');\n\nawait page.keyboard.press('Backspace'); // Result text will end up saying 'Hello!' ```\n\nAn example of pressing uppercase `A`\n\n```js await page.keyboard.press('Shift+KeyA'); // or await page.keyboard.press('Shift+A'); ```\n\nAn example to trigger select-all with the keyboard\n\n```js // on Windows and Linux await page.keyboard.press('Control+A'); // on macOS await page.keyboard.press('Meta+A'); ```"
    },
    "mouse": {
        "type": "object",
        "properties": {
            "click": {
                "kind": "function",
                "type": "Promise",
                "parameters": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    },
                    "options": {
                        "type": "object",
                        "properties": {
                            "button": {
                                "type": "string",
                                "enum": [
                                    "left",
                                    "right",
                                    "middle"
                                ],
                                "description": "Defaults to `left`."
                            },
                            "clickCount": {
                                "type": "number",
                                "description": "defaults to 1. See [UIEvent.detail]."
                            },
                            "delay": {
                                "type": "number",
                                "description": "Time to wait between `mousedown` and `mouseup` in milliseconds. Defaults to 0."
                            }
                        },
                        "additionalProperties": false
                    }
                },
                "required": [
                    "x",
                    "y"
                ],
                "description": "Shortcut for [mouse.move(x, y[, options])](https://playwright.dev/docs/api/class-mouse#mouse-move), [mouse.down([options])](https://playwright.dev/docs/api/class-mouse#mouse-down), [mouse.up([options])](https://playwright.dev/docs/api/class-mouse#mouse-up)."
            },
            "dblclick": {
                "kind": "function",
                "type": "Promise",
                "parameters": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    },
                    "options": {
                        "type": "object",
                        "properties": {
                            "button": {
                                "type": "string",
                                "enum": [
                                    "left",
                                    "right",
                                    "middle"
                                ],
                                "description": "Defaults to `left`."
                            },
                            "delay": {
                                "type": "number",
                                "description": "Time to wait between `mousedown` and `mouseup` in milliseconds. Defaults to 0."
                            }
                        },
                        "additionalProperties": false
                    }
                },
                "required": [
                    "x",
                    "y"
                ],
                "description": "Shortcut for [mouse.move(x, y[, options])](https://playwright.dev/docs/api/class-mouse#mouse-move), [mouse.down([options])](https://playwright.dev/docs/api/class-mouse#mouse-down), [mouse.up([options])](https://playwright.dev/docs/api/class-mouse#mouse-up), [mouse.down([options])](https://playwright.dev/docs/api/class-mouse#mouse-down) and [mouse.up([options])](https://playwright.dev/docs/api/class-mouse#mouse-up)."
            },
            "down": {
                "kind": "function",
                "type": "Promise",
                "parameters": {
                    "options": {
                        "type": "object",
                        "properties": {
                            "button": {
                                "type": "string",
                                "enum": [
                                    "left",
                                    "right",
                                    "middle"
                                ],
                                "description": "Defaults to `left`."
                            },
                            "clickCount": {
                                "type": "number",
                                "description": "defaults to 1. See [UIEvent.detail]."
                            }
                        },
                        "additionalProperties": false
                    }
                },
                "required": [],
                "description": "Dispatches a `mousedown` event."
            },
            "move": {
                "kind": "function",
                "type": "Promise",
                "parameters": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    },
                    "options": {
                        "type": "object",
                        "properties": {
                            "steps": {
                                "type": "number",
                                "description": "defaults to 1. Sends intermediate `mousemove` events."
                            }
                        },
                        "additionalProperties": false
                    }
                },
                "required": [
                    "x",
                    "y"
                ],
                "description": "Dispatches a `mousemove` event."
            },
            "up": {
                "kind": "function",
                "type": "Promise",
                "parameters": {
                    "options": {
                        "type": "object",
                        "properties": {
                            "button": {
                                "type": "string",
                                "enum": [
                                    "left",
                                    "right",
                                    "middle"
                                ],
                                "description": "Defaults to `left`."
                            },
                            "clickCount": {
                                "type": "number",
                                "description": "defaults to 1. See [UIEvent.detail]."
                            }
                        },
                        "additionalProperties": false
                    }
                },
                "required": [],
                "description": "Dispatches a `mouseup` event."
            }
        },
        "required": [
            "click",
            "dblclick",
            "down",
            "move",
            "up"
        ],
        "additionalProperties": false,
        "description": "The Mouse class operates in main-frame CSS pixels relative to the top-left corner of the viewport.\n\nEvery `page` object has its own Mouse, accessible with [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse).\n\n```js // Using ‘page.mouse’ to trace a 100x100 square. await page.mouse.move(0, 0); await page.mouse.down(); await page.mouse.move(0, 100); await page.mouse.move(100, 100); await page.mouse.move(100, 0); await page.mouse.move(0, 0); await page.mouse.up(); ```"
    },
    "press": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string",
                "description": "A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used. See [working with selectors](https://playwright.dev/docs/selectors) for more details."
            },
            "key": {
                "type": "string",
                "description": "Name of the key to press or a character to generate, such as `ArrowLeft` or `a`."
            },
            "options": {
                "type": "object",
                "properties": {
                    "delay": {
                        "type": "number",
                        "description": "Time to wait between `keydown` and `keyup` in milliseconds. Defaults to 0."
                    },
                    "noWaitAfter": {
                        "type": "boolean",
                        "description": "Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as navigating to inaccessible pages. Defaults to `false`."
                    },
                    "strict": {
                        "type": "boolean",
                        "description": "When true, the call requires selector to resolve to a single element. If given selector resolves to more then one element, the call throws an exception."
                    },
                    "timeout": {
                        "type": "number",
                        "description": "Maximum time in milliseconds, defaults to 30 seconds, pass `0` to disable timeout. The default value can be changed by using the [browserContext.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout) or [page.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-page#page-set-default-timeout) methods."
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector",
            "key"
        ],
        "description": "Focuses the element, and then uses [keyboard.down(key)](https://playwright.dev/docs/api/class-keyboard#keyboard-down) and [keyboard.up(key)](https://playwright.dev/docs/api/class-keyboard#keyboard-up).\n\n`key` can specify the intended [keyboardEvent.key](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) value or a single character to generate the text for. A superset of the `key` values can be found [here](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values). Examples of the keys are:\n\n`F1` - `F12`, `Digit0`- `Digit9`, `KeyA`- `KeyZ`, `Backquote`, `Minus`, `Equal`, `Backslash`, `Backspace`, `Tab`, `Delete`, `Escape`, `ArrowDown`, `End`, `Enter`, `Home`, `Insert`, `PageDown`, `PageUp`, `ArrowRight`, `ArrowUp`, etc.\n\nFollowing modification shortcuts are also supported: `Shift`, `Control`, `Alt`, `Meta`, `ShiftLeft`.\n\nHolding down `Shift` will type the text that corresponds to the `key` in the upper case.\n\nIf `key` is a single character, it is case-sensitive, so the values `a` and `A` will generate different respective texts.\n\nShortcuts such as `key: \"Control+o\"` or `key: \"Control+Shift+T\"` are supported as well. When specified with the modifier, modifier is pressed and being held while the subsequent key is being pressed.\n\n```js const page = await browser.newPage(); await page.goto('https://keycode.info'); await page.press('body', 'A'); await page.screenshot({ path: 'A.png' }); await page.press('body', 'ArrowLeft'); await page.screenshot({ path: 'ArrowLeft.png' }); await page.press('body', 'Shift+O'); await page.screenshot({ path: 'O.png' }); await browser.close(); ```"
    },
    "touchscreen": {
        "type": "object",
        "properties": {
            "tap": {
                "kind": "function",
                "type": "Promise",
                "parameters": {
                    "x": {
                        "type": "number"
                    },
                    "y": {
                        "type": "number"
                    }
                },
                "required": [
                    "x",
                    "y"
                ],
                "description": "Dispatches a `touchstart` and `touchend` event with a single touch at the position (`x`,`y`)."
            }
        },
        "required": [
            "tap"
        ],
        "additionalProperties": false,
        "description": "The Touchscreen class operates in main-frame CSS pixels relative to the top-left corner of the viewport. Methods on the touchscreen can only be used in browser contexts that have been initialized with `hasTouch` set to true."
    },
    "type": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string",
                "description": "A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used. See [working with selectors](https://playwright.dev/docs/selectors) for more details."
            },
            "text": {
                "type": "string",
                "description": "A text to type into a focused element."
            },
            "options": {
                "type": "object",
                "properties": {
                    "delay": {
                        "type": "number",
                        "description": "Time to wait between key presses in milliseconds. Defaults to 0."
                    },
                    "noWaitAfter": {
                        "type": "boolean",
                        "description": "Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as navigating to inaccessible pages. Defaults to `false`."
                    },
                    "strict": {
                        "type": "boolean",
                        "description": "When true, the call requires selector to resolve to a single element. If given selector resolves to more then one element, the call throws an exception."
                    },
                    "timeout": {
                        "type": "number",
                        "description": "Maximum time in milliseconds, defaults to 30 seconds, pass `0` to disable timeout. The default value can be changed by using the [browserContext.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout) or [page.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-page#page-set-default-timeout) methods."
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector",
            "text"
        ],
        "description": "Sends a `keydown`, `keypress`/`input`, and `keyup` event for each character in the text. `page.type` can be used to send fine-grained keyboard events. To fill values in form fields, use [page.fill(selector, value[, options])](https://playwright.dev/docs/api/class-page#page-fill).\n\nTo press a special key, like `Control` or `ArrowDown`, use [keyboard.press(key[, options])](https://playwright.dev/docs/api/class-keyboard#keyboard-press).\n\n```js await page.type('#mytextarea', 'Hello'); // Types instantly await page.type('#mytextarea', 'World', {delay: 100}); // Types slower, like a user ```\n\nShortcut for main frame's [frame.type(selector, text[, options])](https://playwright.dev/docs/api/class-frame#frame-type)."
    },
    "uncheck": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string",
                "description": "A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used. See [working with selectors](https://playwright.dev/docs/selectors) for more details."
            },
            "options": {
                "type": "object",
                "properties": {
                    "force": {
                        "type": "boolean",
                        "description": "Whether to bypass the [actionability](https://playwright.dev/docs/actionability) checks. Defaults to `false`."
                    },
                    "noWaitAfter": {
                        "type": "boolean",
                        "description": "Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as navigating to inaccessible pages. Defaults to `false`."
                    },
                    "position": {
                        "type": "object",
                        "properties": {
                            "x": {
                                "type": "number"
                            },
                            "y": {
                                "type": "number"
                            }
                        },
                        "required": [
                            "x",
                            "y"
                        ],
                        "additionalProperties": false,
                        "description": "A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element."
                    },
                    "strict": {
                        "type": "boolean",
                        "description": "When true, the call requires selector to resolve to a single element. If given selector resolves to more then one element, the call throws an exception."
                    },
                    "timeout": {
                        "type": "number",
                        "description": "Maximum time in milliseconds, defaults to 30 seconds, pass `0` to disable timeout. The default value can be changed by using the [browserContext.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout) or [page.setDefaultTimeout(timeout)](https://playwright.dev/docs/api/class-page#page-set-default-timeout) methods."
                    },
                    "trial": {
                        "type": "boolean",
                        "description": "When set, this method only performs the [actionability](https://playwright.dev/docs/actionability) checks and skips the action. Defaults to `false`. Useful to wait until the element is ready for the action without performing it."
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method unchecks an element matching `selector` by performing the following steps: 1. Find an element matching `selector`. If there is none, wait until a matching element is attached to the DOM. 1. Ensure that matched element is a checkbox or a radio input. If not, this method throws. If the element is already    unchecked, this method returns immediately. 1. Wait for [actionability](https://playwright.dev/docs/actionability) checks on the matched element, unless `force` option is set. If the    element is detached during the checks, the whole action is retried. 1. Scroll the element into view if needed. 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the element. 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set. 1. Ensure that the element is now unchecked. If not, this method throws.\n\nWhen all steps combined have not finished during the specified `timeout`, this method throws a [TimeoutError]. Passing zero timeout disables this.\n\nShortcut for main frame's [frame.uncheck(selector[, options])](https://playwright.dev/docs/api/class-frame#frame-uncheck)."
    },
    "waitForTimeout": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "timeout": {
                "type": "number",
                "description": "A timeout to wait for"
            }
        },
        "required": [
            "timeout"
        ],
        "description": "Waits for the given `timeout` in milliseconds.\n\nNote that `page.waitForTimeout()` should only be used for debugging. Tests using the timer in production are going to be flaky. Use signals such as network events, selectors becoming visible and others instead.\n\n```js // wait for 1 second await page.waitForTimeout(1000); ```\n\nShortcut for main frame's [frame.waitForTimeout(timeout)](https://playwright.dev/docs/api/class-frame#frame-wait-for-timeout)."
    },
    "takeScreenshot": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "stitchOptions": {
                "type": "object",
                "properties": {
                    "blend": {
                        "type": "string",
                        "enum": [
                            "clear",
                            "source",
                            "over",
                            "in",
                            "out",
                            "atop",
                            "dest",
                            "dest-over",
                            "dest-in",
                            "dest-out",
                            "dest-atop",
                            "xor",
                            "add",
                            "saturate",
                            "multiply",
                            "screen",
                            "overlay",
                            "darken",
                            "lighten",
                            "colour-dodge",
                            "colour-burn",
                            "hard-light",
                            "soft-light",
                            "difference",
                            "exclusion"
                        ],
                        "description": "How to blend this image with the image below. (optional)",
                        "default": "multiply"
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [],
        "description": "This method will take a screenshot at the position that it activated, its useful for taking a screenshot in sequence for events/actions. In the end the screenshots will be merged with the final screenshot."
    },
    "takeScreenshotAll": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "stitchOptions": {
                "type": "object",
                "properties": {
                    "blend": {
                        "type": "string",
                        "enum": [
                            "clear",
                            "source",
                            "over",
                            "in",
                            "out",
                            "atop",
                            "dest",
                            "dest-over",
                            "dest-in",
                            "dest-out",
                            "dest-atop",
                            "xor",
                            "add",
                            "saturate",
                            "multiply",
                            "screen",
                            "overlay",
                            "darken",
                            "lighten",
                            "colour-dodge",
                            "colour-burn",
                            "hard-light",
                            "soft-light",
                            "difference",
                            "exclusion"
                        ],
                        "description": "How to blend this image with the image below. (optional)",
                        "default": "multiply"
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [],
        "description": "This method will take a screenshot after each action, its useful for looking at over all action execution. In the end the screenshots will be merged."
    },
    "takeElementScreenshot": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "selector": {
                "type": "string"
            }
        },
        "required": [
            "selector"
        ],
        "description": "This method will take a screenshot of an element."
    },
    "takeScreenshotOptions": {
        "kind": "function",
        "type": "Promise",
        "parameters": {
            "mergeType": {
                "type": "string",
                "enum": [
                    "stitch",
                    "overlay"
                ]
            },
            "stitchOptions": {
                "type": "object",
                "properties": {
                    "direction": {
                        "type": "string",
                        "enum": [
                            "vertical",
                            "horizontal"
                        ],
                        "description": "Direction of the merged image."
                    },
                    "align": {
                        "type": "string",
                        "enum": [
                            "start",
                            "center",
                            "end"
                        ],
                        "description": "Aligning of given images. If the images are not all the same size, images will be sorted to largest image. Possible values are `start`, `center` and `end`. Default is `start`."
                    },
                    "offset": {
                        "type": "number",
                        "description": "Offset in pixels between each image. Default is `0`"
                    },
                    "margin": {
                        "type": "string",
                        "description": "Set the margin of image, considered as standard css shorthand properties (e.g. '40 40 0 10')",
                        "default": "0 0 0 0"
                    },
                    "color": {
                        "type": "string",
                        "description": "Set the background color of image."
                    }
                },
                "additionalProperties": false
            },
            "overlayOptions": {
                "type": "object",
                "properties": {
                    "blend": {
                        "type": "string",
                        "enum": [
                            "clear",
                            "source",
                            "over",
                            "in",
                            "out",
                            "atop",
                            "dest",
                            "dest-over",
                            "dest-in",
                            "dest-out",
                            "dest-atop",
                            "xor",
                            "add",
                            "saturate",
                            "multiply",
                            "screen",
                            "overlay",
                            "darken",
                            "lighten",
                            "colour-dodge",
                            "colour-burn",
                            "hard-light",
                            "soft-light",
                            "difference",
                            "exclusion"
                        ],
                        "description": "How to blend this image with the image below. (optional)",
                        "default": "multiply"
                    }
                },
                "additionalProperties": false
            }
        },
        "required": [],
        "description": "The purpose of this action is to have centralized options for all screenshots. This action can be used in conjunction with takeScreenshot action only. Only one instance can be used."
    }
}
