{"id":24313536,"url":"https://github.com/rickypc/puppeteer-extra-plugin-angular","last_synced_at":"2025-07-10T02:34:50.391Z","repository":{"id":48923050,"uuid":"198956251","full_name":"rickypc/puppeteer-extra-plugin-angular","owner":"rickypc","description":"A plugin for puppeteer-extra with Angular synchronization support","archived":false,"fork":false,"pushed_at":"2021-07-05T13:54:12.000Z","size":96,"stargazers_count":4,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-12-16T07:18:50.028Z","etag":null,"topics":["angular","chrome","functionality","headless","puppeteer","puppeteer-extra","puppeteer-extra-plugin","support","synchronization"],"latest_commit_sha":null,"homepage":"https://www.npmjs.org/package/puppeteer-extra-plugin-angular","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rickypc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-26T06:03:55.000Z","updated_at":"2023-06-29T04:57:34.000Z","dependencies_parsed_at":"2022-09-13T05:12:38.969Z","dependency_job_id":null,"html_url":"https://github.com/rickypc/puppeteer-extra-plugin-angular","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickypc%2Fpuppeteer-extra-plugin-angular","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickypc%2Fpuppeteer-extra-plugin-angular/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickypc%2Fpuppeteer-extra-plugin-angular/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickypc%2Fpuppeteer-extra-plugin-angular/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rickypc","download_url":"https://codeload.github.com/rickypc/puppeteer-extra-plugin-angular/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234174884,"owners_count":18791301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","chrome","functionality","headless","puppeteer","puppeteer-extra","puppeteer-extra-plugin","support","synchronization"],"created_at":"2025-01-17T09:12:19.742Z","updated_at":"2025-01-17T09:12:20.490Z","avatar_url":"https://github.com/rickypc.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Version](https://img.shields.io/npm/v/puppeteer-extra-plugin-angular)](https://bit.ly/32X27uf)\n[![Downloads](https://img.shields.io/npm/dt/puppeteer-extra-plugin-angular)](https://bit.ly/32X27uf)\n[![Dependency Status](https://img.shields.io/david/rickypc/puppeteer-extra-plugin-angular)](https://bit.ly/2SM3Ygy)\n[![Dev Dependency Status](https://img.shields.io/david/dev/rickypc/puppeteer-extra-plugin-angular)](https://bit.ly/30ZDj2P)\n[![Code Style](https://img.shields.io/badge/code%20style-Airbnb-red)](https://bit.ly/2JYN1gk)\n[![Build](https://img.shields.io/travis/rickypc/puppeteer-extra-plugin-angular)](https://bit.ly/2YuZRuH)\n[![Coverage](https://img.shields.io/codecov/c/github/rickypc/puppeteer-extra-plugin-angular)](https://bit.ly/2Kb1F2Y)\n[![Vulnerability](https://img.shields.io/snyk/vulnerabilities/github/rickypc/puppeteer-extra-plugin-angular)](https://bit.ly/2H0FHil)\n[![Dependabot](https://api.dependabot.com/badges/status?host=github\u0026repo=rickypc/puppeteer-extra-plugin-angular)](https://bit.ly/2KIM5vs)\n[![License](https://img.shields.io/npm/l/puppeteer-extra-plugin-angular)](https://bit.ly/2yi7gyO)\n\nPuppeteer Extra Plugin Angular\n==============================\n\nA plugin for [puppeteer-extra](https://bit.ly/2JYg8Aa) to provide [puppeteer](https://bit.ly/2JX4gOZ) functionality with [Angular](https://bit.ly/2Yw8Mw6) synchronization support on Angular pages.\nIt supports non-[Angular](https://bit.ly/2Yw8Mw6) pages starting on version 3.x.\n\nInstallation\n-\n\n```bash\n$ npm install --save puppeteer-extra-plugin-angular\n```\n\nAPI Reference\n-\nProvide puppeteer functionality with Angular synchronization support.\n\n**Extends**: \u003ccode\u003eexternal:PuppeteerExtraPlugin\u003c/code\u003e  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| opts | \u003ccode\u003eObject\u003c/code\u003e | Options |\n\n**Example**  \n```js\nconst puppeteer = require('puppeteer-extra');\npuppeteer.use(require('puppeteer-extra-plugin-angular')());\n\n(async () =\u003e {\n  const configs = [\n    {\n      label: 'Email',\n      selector: 'input.email',\n      type: 'type',\n      value: 'theEmail'\n    },\n    {\n      label: 'Subscribe',\n      selector: 'input.subscribe',\n      type: 'check',\n    },\n    {\n      label: 'Send',\n      selector: 'button',\n      type: 'click',\n    },\n  ];\n  const data = {\n    theEmail: 'you@address.com',\n  };\n\n  const browser = await puppeteer.launch();\n  const page = await browser.newPage();\n\n  // Calling page.waitUntilActionReady internally.\n  await page.navigateUntilReady('https://angular.io');\n  await page.formFillOut(configs, data);\n\n  // Calling page.waitUntilActionReady internally.\n  await page.clickIfExists('a.link', 'A Link');\n\n  await page.toggleUncheck('input.radio[value=\"1\"]', 'Uncheck Radio');\n  await page.toggleSelectByText('select1', 'Option 1', 'Selection');\n  await page.toggleDeselectByText('select2', 'Option 2', 'Deselection');\n  await page.toggleCheck('input.check', 'Checkbox');\n\n  // Wait until both document.readyState is interactive or complete\n  // and Angular is ready.\n  await page.waitUntilActionReady();\n\n  await page.typeIfExists('input.text', 'Something', 'Textfield');\n\n  // Wait until Angular is ready.\n  await page.waitUntilAngularReady();\n\n  await page.close();\n  await browser.close();\n})();\n```\n\n* [puppeteer-extra-plugin-angular](#module_puppeteer-extra-plugin-angular) ⇐ \u003ccode\u003eexternal:PuppeteerExtraPlugin\u003c/code\u003e\n    * _static_\n        * [.Click](#module_puppeteer-extra-plugin-angular.Click)\n            * [.ifExists(selector, [label], [timeout])](#module_puppeteer-extra-plugin-angular.Click.ifExists) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\n        * [.Form](#module_puppeteer-extra-plugin-angular.Form)\n            * [.fillOut(configs, [data])](#module_puppeteer-extra-plugin-angular.Form.fillOut) ⇒ \u003ccode\u003ePromise.\u0026lt;void\u0026gt;\u003c/code\u003e\n        * [.Navigate](#module_puppeteer-extra-plugin-angular.Navigate)\n            * [.untilReady(url, [timeout])](#module_puppeteer-extra-plugin-angular.Navigate.untilReady) ⇒ \u003ccode\u003ePromise.\u0026lt;void\u0026gt;\u003c/code\u003e\n        * [.Toggle](#module_puppeteer-extra-plugin-angular.Toggle)\n            * [.check(selector, [label])](#module_puppeteer-extra-plugin-angular.Toggle.check) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\n            * [.deselectByText(selector, values, [label])](#module_puppeteer-extra-plugin-angular.Toggle.deselectByText) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\n            * [.selectByText(selector, values, [label])](#module_puppeteer-extra-plugin-angular.Toggle.selectByText) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\n            * [.uncheck(selector, [label])](#module_puppeteer-extra-plugin-angular.Toggle.uncheck) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\n        * [.Type](#module_puppeteer-extra-plugin-angular.Type)\n            * [.ifExists(selector, value, [label])](#module_puppeteer-extra-plugin-angular.Type.ifExists) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\n        * [.Wait](#module_puppeteer-extra-plugin-angular.Wait)\n            * [.untilActionReady([timeout])](#module_puppeteer-extra-plugin-angular.Wait.untilActionReady) ⇒ \u003ccode\u003ePromise.\u0026lt;void\u0026gt;\u003c/code\u003e\n            * [.untilAngularReady([timeout])](#module_puppeteer-extra-plugin-angular.Wait.untilAngularReady) ⇒ \u003ccode\u003ePromise.\u0026lt;void\u0026gt;\u003c/code\u003e\n    * _inner_\n        * [~Logger](#module_puppeteer-extra-plugin-angular.Logger)\n            * [.debug(...args)](#module_puppeteer-extra-plugin-angular.Logger+debug) ⇒ \u003ccode\u003enull\u003c/code\u003e\n            * [.debugAndReturn(response, ...args)](#module_puppeteer-extra-plugin-angular.Logger+debugAndReturn) ⇒ \u003ccode\u003e\\*\u003c/code\u003e\n\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Click\"\u003e\u003c/a\u003e\n\n### puppeteer-extra-plugin-angular.Click\n**Kind**: static constant of [\u003ccode\u003epuppeteer-extra-plugin-angular\u003c/code\u003e](#module_puppeteer-extra-plugin-angular)  \n\u003ca name=\"module_puppeteer-extra-plugin-angular.Click.ifExists\"\u003e\u003c/a\u003e\n\n#### Click.ifExists(selector, [label], [timeout]) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\nTrigger Click event if given selector exists and wait for Angular to be ready.\n\n**Kind**: static method of [\u003ccode\u003eClick\u003c/code\u003e](#module_puppeteer-extra-plugin-angular.Click)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e - Truthy if click triggered and Angular is ready, otherwise falsy.  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| selector | \u003ccode\u003estring\u003c/code\u003e |  | Selector to match. |\n| [label] | \u003ccode\u003estring\u003c/code\u003e | \u003ccode\u003e\u0026quot;click\u0026quot;\u003c/code\u003e | Debug label. |\n| [timeout] | \u003ccode\u003enumber\u003c/code\u003e | \u003ccode\u003e25000\u003c/code\u003e | Maximum wait timeout. |\n\n**Example**  \n```js\nconst response = await page.clickIfExists('a[href=\"/\"]', 'Some Link', 5000);\n```\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Form\"\u003e\u003c/a\u003e\n\n### puppeteer-extra-plugin-angular.Form\n**Kind**: static constant of [\u003ccode\u003epuppeteer-extra-plugin-angular\u003c/code\u003e](#module_puppeteer-extra-plugin-angular)  \n\u003ca name=\"module_puppeteer-extra-plugin-angular.Form.fillOut\"\u003e\u003c/a\u003e\n\n#### Form.fillOut(configs, [data]) ⇒ \u003ccode\u003ePromise.\u0026lt;void\u0026gt;\u003c/code\u003e\nFill out the form's field on given configs and data.\n\n**Kind**: static method of [\u003ccode\u003eForm\u003c/code\u003e](#module_puppeteer-extra-plugin-angular.Form)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;void\u0026gt;\u003c/code\u003e - Promise to be resolved once the form filled out.  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| configs | \u003ccode\u003eArray.\u0026lt;Object\u0026gt;\u003c/code\u003e |  | An array of field configs. |\n| [configs[].defaultValue] | \u003ccode\u003estring\u003c/code\u003e | \u003ccode\u003enull\u003c/code\u003e | Default value. |\n| configs[].label | \u003ccode\u003estring\u003c/code\u003e |  | Debug label. |\n| configs[].selector | \u003ccode\u003estring\u003c/code\u003e |  | Selector to match. |\n| configs[].type | \u003ccode\u003echeck\u003c/code\u003e \\| \u003ccode\u003eclick\u003c/code\u003e \\| \u003ccode\u003edeselect-text\u003c/code\u003e \\| \u003ccode\u003eselect-text\u003c/code\u003e \\| \u003ccode\u003etype\u003c/code\u003e \\| \u003ccode\u003euncheck\u003c/code\u003e |  | Action type. |\n| configs[].value | \u003ccode\u003estring\u003c/code\u003e |  | JmesPath expression of the given data. |\n| [data] | \u003ccode\u003eObject\u003c/code\u003e | \u003ccode\u003e{}\u003c/code\u003e | Data to be used to fill out the form. |\n\n**Example**  \n```js\nconst configs = [\n  {\n    label: 'Name',\n    selector: 'input.name',\n    type: 'type',\n    value: 'theName'\n  },\n  {\n    label: 'Company',\n    selector: 'input.company',\n    type: 'type',\n    value: 'theCompany'\n  },\n];\nconst data = {\n  theCompany: 'My Company',\n  theName: 'My Name',\n};\nawait page.formFillOut(configs, data);\n```\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Navigate\"\u003e\u003c/a\u003e\n\n### puppeteer-extra-plugin-angular.Navigate\n**Kind**: static constant of [\u003ccode\u003epuppeteer-extra-plugin-angular\u003c/code\u003e](#module_puppeteer-extra-plugin-angular)  \n\u003ca name=\"module_puppeteer-extra-plugin-angular.Navigate.untilReady\"\u003e\u003c/a\u003e\n\n#### Navigate.untilReady(url, [timeout]) ⇒ \u003ccode\u003ePromise.\u0026lt;void\u0026gt;\u003c/code\u003e\nNavigate to given url and wait for Angular to be ready.\n\n**Kind**: static method of [\u003ccode\u003eNavigate\u003c/code\u003e](#module_puppeteer-extra-plugin-angular.Navigate)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;void\u0026gt;\u003c/code\u003e - Promise to be resolved once the navigation is completed.  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| url | \u003ccode\u003estring\u003c/code\u003e |  | Target URL. |\n| [timeout] | \u003ccode\u003enumber\u003c/code\u003e | \u003ccode\u003e25000\u003c/code\u003e | Maximum wait timeout. |\n\n**Example**  \n```js\nawait page.navigateUntilReady('https://angular.io', 5000);\n```\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Toggle\"\u003e\u003c/a\u003e\n\n### puppeteer-extra-plugin-angular.Toggle\n**Kind**: static constant of [\u003ccode\u003epuppeteer-extra-plugin-angular\u003c/code\u003e](#module_puppeteer-extra-plugin-angular)  \n\n* [.Toggle](#module_puppeteer-extra-plugin-angular.Toggle)\n    * [.check(selector, [label])](#module_puppeteer-extra-plugin-angular.Toggle.check) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\n    * [.deselectByText(selector, values, [label])](#module_puppeteer-extra-plugin-angular.Toggle.deselectByText) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\n    * [.selectByText(selector, values, [label])](#module_puppeteer-extra-plugin-angular.Toggle.selectByText) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\n    * [.uncheck(selector, [label])](#module_puppeteer-extra-plugin-angular.Toggle.uncheck) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\n\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Toggle.check\"\u003e\u003c/a\u003e\n\n#### Toggle.check(selector, [label]) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\nCheck the checkbox or radio button field.\n\n**Kind**: static method of [\u003ccode\u003eToggle\u003c/code\u003e](#module_puppeteer-extra-plugin-angular.Toggle)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e - Truthy if the field is checked, otherwise falsy.  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| selector | \u003ccode\u003estring\u003c/code\u003e |  | Selector to match. |\n| [label] | \u003ccode\u003estring\u003c/code\u003e | \u003ccode\u003e\u0026quot;toggle\u0026quot;\u003c/code\u003e | Debug label. |\n\n**Example**  \n```js\nconst response = await page.toggleCheck('input.checkbox', 'Some Checkbox');\n```\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Toggle.deselectByText\"\u003e\u003c/a\u003e\n\n#### Toggle.deselectByText(selector, values, [label]) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\nDeselect given values from the select field options.\n\n**Kind**: static method of [\u003ccode\u003eToggle\u003c/code\u003e](#module_puppeteer-extra-plugin-angular.Toggle)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e - Truthy if the given values are deselected, otherwise falsy.  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| selector | \u003ccode\u003estring\u003c/code\u003e |  | Selector to match. |\n| values | \u003ccode\u003eArray\u003c/code\u003e |  | A list of value to be deselected from the select field. |\n| [label] | \u003ccode\u003estring\u003c/code\u003e | \u003ccode\u003e\u0026quot;toggle\u0026quot;\u003c/code\u003e | Debug label. |\n\n**Example**  \n```js\nconst response = await page.toggleDeselectByText('select.by-text',\n  'Some Option', 'Some Select');\n```\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Toggle.selectByText\"\u003e\u003c/a\u003e\n\n#### Toggle.selectByText(selector, values, [label]) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\nSelect given values from the select field options.\n\n**Kind**: static method of [\u003ccode\u003eToggle\u003c/code\u003e](#module_puppeteer-extra-plugin-angular.Toggle)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e - Truthy if the given values are selected, otherwise falsy.  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| selector | \u003ccode\u003estring\u003c/code\u003e |  | Selector to match. |\n| values | \u003ccode\u003eArray\u003c/code\u003e |  | A list of value to be selected from the select field. |\n| [label] | \u003ccode\u003estring\u003c/code\u003e | \u003ccode\u003e\u0026quot;toggle\u0026quot;\u003c/code\u003e | Debug label. |\n\n**Example**  \n```js\nconst response = await page.toggleSelectByText('select.by-text',\n  'Some Other Option', 'Some Select');\n```\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Toggle.uncheck\"\u003e\u003c/a\u003e\n\n#### Toggle.uncheck(selector, [label]) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\nUncheck the checkbox or radio button field.\n\n**Kind**: static method of [\u003ccode\u003eToggle\u003c/code\u003e](#module_puppeteer-extra-plugin-angular.Toggle)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e - Truthy if the field is unchecked, otherwise falsy.  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| selector | \u003ccode\u003estring\u003c/code\u003e |  | Selector to match. |\n| [label] | \u003ccode\u003estring\u003c/code\u003e | \u003ccode\u003e\u0026quot;toggle\u0026quot;\u003c/code\u003e | Debug label. |\n\n**Example**  \n```js\nconst response = await page.toggleUncheck('input.checkbox', 'Some Checkbox');\n```\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Type\"\u003e\u003c/a\u003e\n\n### puppeteer-extra-plugin-angular.Type\n**Kind**: static constant of [\u003ccode\u003epuppeteer-extra-plugin-angular\u003c/code\u003e](#module_puppeteer-extra-plugin-angular)  \n\u003ca name=\"module_puppeteer-extra-plugin-angular.Type.ifExists\"\u003e\u003c/a\u003e\n\n#### Type.ifExists(selector, value, [label]) ⇒ \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e\nFill out the field on given selector with given value.\n\n**Kind**: static method of [\u003ccode\u003eType\u003c/code\u003e](#module_puppeteer-extra-plugin-angular.Type)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;boolean\u0026gt;\u003c/code\u003e - Truthy if the field is filled out, otherwise falsy.  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| selector | \u003ccode\u003estring\u003c/code\u003e |  | Selector to match. |\n| value | \u003ccode\u003estring\u003c/code\u003e |  | Value to be used to fill out the field. |\n| [label] | \u003ccode\u003estring\u003c/code\u003e | \u003ccode\u003e\u0026quot;\u0026#x27;type\u0026#x27;\u0026quot;\u003c/code\u003e | Debug label. |\n\n**Example**  \n```js\nconst response = await page.typeIfExists('input.email', 'you@address.com', 'Email');\n```\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Wait\"\u003e\u003c/a\u003e\n\n### puppeteer-extra-plugin-angular.Wait\n**Kind**: static constant of [\u003ccode\u003epuppeteer-extra-plugin-angular\u003c/code\u003e](#module_puppeteer-extra-plugin-angular)  \n\n* [.Wait](#module_puppeteer-extra-plugin-angular.Wait)\n    * [.untilActionReady([timeout])](#module_puppeteer-extra-plugin-angular.Wait.untilActionReady) ⇒ \u003ccode\u003ePromise.\u0026lt;void\u0026gt;\u003c/code\u003e\n    * [.untilAngularReady([timeout])](#module_puppeteer-extra-plugin-angular.Wait.untilAngularReady) ⇒ \u003ccode\u003ePromise.\u0026lt;void\u0026gt;\u003c/code\u003e\n\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Wait.untilActionReady\"\u003e\u003c/a\u003e\n\n#### Wait.untilActionReady([timeout]) ⇒ \u003ccode\u003ePromise.\u0026lt;void\u0026gt;\u003c/code\u003e\nWait until both page and Angular is ready.\n\n**Kind**: static method of [\u003ccode\u003eWait\u003c/code\u003e](#module_puppeteer-extra-plugin-angular.Wait)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;void\u0026gt;\u003c/code\u003e - Promise to be resolved once the wait is completed.  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| [timeout] | \u003ccode\u003enumber\u003c/code\u003e | \u003ccode\u003e25000\u003c/code\u003e | Maximum wait timeout. |\n\n**Example**  \n```js\nawait page.waitUntilActionReady(5000);\n```\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Wait.untilAngularReady\"\u003e\u003c/a\u003e\n\n#### Wait.untilAngularReady([timeout]) ⇒ \u003ccode\u003ePromise.\u0026lt;void\u0026gt;\u003c/code\u003e\nWait until Angular is ready.\n\n**Kind**: static method of [\u003ccode\u003eWait\u003c/code\u003e](#module_puppeteer-extra-plugin-angular.Wait)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;void\u0026gt;\u003c/code\u003e - Promise to be resolved once the wait is completed.  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| [timeout] | \u003ccode\u003enumber\u003c/code\u003e | \u003ccode\u003e25000\u003c/code\u003e | Maximum wait timeout. |\n\n**Example**  \n```js\nawait page.waitUntilAngularReady(5000);\n```\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Logger\"\u003e\u003c/a\u003e\n\n### puppeteer-extra-plugin-angular~Logger\n**Kind**: inner class of [\u003ccode\u003epuppeteer-extra-plugin-angular\u003c/code\u003e](#module_puppeteer-extra-plugin-angular)  \n\n* [~Logger](#module_puppeteer-extra-plugin-angular.Logger)\n    * [.debug(...args)](#module_puppeteer-extra-plugin-angular.Logger+debug) ⇒ \u003ccode\u003enull\u003c/code\u003e\n    * [.debugAndReturn(response, ...args)](#module_puppeteer-extra-plugin-angular.Logger+debugAndReturn) ⇒ \u003ccode\u003e\\*\u003c/code\u003e\n\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Logger+debug\"\u003e\u003c/a\u003e\n\n#### logger.debug(...args) ⇒ \u003ccode\u003enull\u003c/code\u003e\nProcess debug information if it is not negligible messages.\n\n**Kind**: instance method of [\u003ccode\u003eLogger\u003c/code\u003e](#module_puppeteer-extra-plugin-angular.Logger)  \n**Returns**: \u003ccode\u003enull\u003c/code\u003e - Null value.  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| ...args | \u003ccode\u003e\\*\u003c/code\u003e | Debug arguments. |\n\n**Example**  \n```js\nconst logger = new Logger('module:namespace');\nconst response = await logger.debug('debug message %s', Error('error'));\n```\n\u003ca name=\"module_puppeteer-extra-plugin-angular.Logger+debugAndReturn\"\u003e\u003c/a\u003e\n\n#### logger.debugAndReturn(response, ...args) ⇒ \u003ccode\u003e\\*\u003c/code\u003e\nProcess debug information if it is not negligible messagesi and return response value.\n\n**Kind**: instance method of [\u003ccode\u003eLogger\u003c/code\u003e](#module_puppeteer-extra-plugin-angular.Logger)  \n**Returns**: \u003ccode\u003e\\*\u003c/code\u003e - Given response value.  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| response | \u003ccode\u003e\\*\u003c/code\u003e | Response value. |\n| ...args | \u003ccode\u003e\\*\u003c/code\u003e | Debug arguments. |\n\n**Example**  \n```js\nconst logger = new Logger('module:namespace');\nconst response = await logger.debugAndReturn(true, 'debug message %s', Error('error'));\n```\n\nDevelopment Dependencies\n-\nYou will need to install [Node.js](https://bit.ly/2SMCGXK) as a local development dependency. The `npm` package manager comes bundled with all recent releases of `Node.js`.\n\n`npm install` will attempt to resolve any `npm` module dependencies that have been declared in the project’s `package.json` file, installing them into the `node_modules` folder.\n\n```bash\n$ npm install\n```\n\nRun Linter\n-\nTo make sure we followed code style best practice, run:\n\n```bash\n$ npm run lint\n```\n\nRun Unit Tests\n-\nTo make sure we did not break anything, let's run:\n\n```bash\n$ npm test\n```\n\nContributing\n-\nIf you would like to contribute code to Puppeteer Extra Plugin Angular repository you can do so\nthrough GitHub by forking the repository and sending a pull request.\n\nIf you do not agree to [Contribution Agreement](CONTRIBUTING.md), do not\ncontribute any code to Puppeteer Extra Plugin Angular repository.\n\nWhen submitting code, please make every effort to follow existing conventions\nand style in order to keep the code as readable as possible. Please also include\nappropriate test cases.\n\nThat's it! Thank you for your contribution!\n\nLicense\n-\nCopyright (c) 2018 - 2020 Richard Huang.\n\nThis plugin is free software, licensed under: [GNU Affero General Public License (AGPL-3.0)](https://bit.ly/2yi7gyO).\n\nDocumentation and other similar content are provided under [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://bit.ly/2SMCRlS).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frickypc%2Fpuppeteer-extra-plugin-angular","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frickypc%2Fpuppeteer-extra-plugin-angular","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frickypc%2Fpuppeteer-extra-plugin-angular/lists"}