mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
Add Page.browser()
method (#2387)
Call page.browser() to get the browser instance associated with a page. Fixes #2275
This commit is contained in:
parent
6eb6ce0ec9
commit
082b11aa57
14
docs/api.md
14
docs/api.md
@ -63,6 +63,7 @@
|
|||||||
* [page.addStyleTag(options)](#pageaddstyletagoptions)
|
* [page.addStyleTag(options)](#pageaddstyletagoptions)
|
||||||
* [page.authenticate(credentials)](#pageauthenticatecredentials)
|
* [page.authenticate(credentials)](#pageauthenticatecredentials)
|
||||||
* [page.bringToFront()](#pagebringtofront)
|
* [page.bringToFront()](#pagebringtofront)
|
||||||
|
* [page.browser()](#pagebrowser)
|
||||||
* [page.click(selector[, options])](#pageclickselector-options)
|
* [page.click(selector[, options])](#pageclickselector-options)
|
||||||
* [page.close()](#pageclose)
|
* [page.close()](#pageclose)
|
||||||
* [page.content()](#pagecontent)
|
* [page.content()](#pagecontent)
|
||||||
@ -235,6 +236,7 @@
|
|||||||
* [securityDetails.validFrom()](#securitydetailsvalidfrom)
|
* [securityDetails.validFrom()](#securitydetailsvalidfrom)
|
||||||
* [securityDetails.validTo()](#securitydetailsvalidto)
|
* [securityDetails.validTo()](#securitydetailsvalidto)
|
||||||
- [class: Target](#class-target)
|
- [class: Target](#class-target)
|
||||||
|
* [target.browser()](#targetbrowser)
|
||||||
* [target.createCDPSession()](#targetcreatecdpsession)
|
* [target.createCDPSession()](#targetcreatecdpsession)
|
||||||
* [target.page()](#targetpage)
|
* [target.page()](#targetpage)
|
||||||
* [target.type()](#targettype)
|
* [target.type()](#targettype)
|
||||||
@ -713,6 +715,12 @@ To disable authentication, pass `null`.
|
|||||||
|
|
||||||
Brings page to front (activates tab).
|
Brings page to front (activates tab).
|
||||||
|
|
||||||
|
#### page.browser()
|
||||||
|
|
||||||
|
- returns: <[Browser]>
|
||||||
|
|
||||||
|
Get the browser the page belongs to.
|
||||||
|
|
||||||
#### page.click(selector[, options])
|
#### page.click(selector[, options])
|
||||||
- `selector` <[string]> A [selector] to search for element to click. If there are multiple elements satisfying the selector, the first will be clicked.
|
- `selector` <[string]> A [selector] to search for element to click. If there are multiple elements satisfying the selector, the first will be clicked.
|
||||||
- `options` <[Object]>
|
- `options` <[Object]>
|
||||||
@ -2553,6 +2561,12 @@ Contains the URL of the response.
|
|||||||
|
|
||||||
### class: Target
|
### class: Target
|
||||||
|
|
||||||
|
#### target.browser()
|
||||||
|
|
||||||
|
- returns: <[Browser]>
|
||||||
|
|
||||||
|
Get the browser the target belongs to.
|
||||||
|
|
||||||
#### target.createCDPSession()
|
#### target.createCDPSession()
|
||||||
- returns: <[Promise]<[CDPSession]>>
|
- returns: <[Promise]<[CDPSession]>>
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ class Browser extends EventEmitter {
|
|||||||
*/
|
*/
|
||||||
async _targetCreated(event) {
|
async _targetCreated(event) {
|
||||||
const targetInfo = event.targetInfo;
|
const targetInfo = event.targetInfo;
|
||||||
const target = new Target(targetInfo, () => this._connection.createSession(targetInfo.targetId), this._ignoreHTTPSErrors, !this._appMode, this._screenshotTaskQueue);
|
const target = new Target(targetInfo, this, () => this._connection.createSession(targetInfo.targetId), this._ignoreHTTPSErrors, !this._appMode, this._screenshotTaskQueue);
|
||||||
console.assert(!this._targets.has(event.targetInfo.targetId), 'Target should not exist before targetCreated');
|
console.assert(!this._targets.has(event.targetInfo.targetId), 'Target should not exist before targetCreated');
|
||||||
this._targets.set(event.targetInfo.targetId, target);
|
this._targets.set(event.targetInfo.targetId, target);
|
||||||
|
|
||||||
|
@ -114,6 +114,13 @@ class Page extends EventEmitter {
|
|||||||
return this._target;
|
return this._target;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {!Puppeteer.Browser}
|
||||||
|
*/
|
||||||
|
browser() {
|
||||||
|
return this._target.browser();
|
||||||
|
}
|
||||||
|
|
||||||
_onTargetCrashed() {
|
_onTargetCrashed() {
|
||||||
this.emit('error', new Error('Page crashed!'));
|
this.emit('error', new Error('Page crashed!'));
|
||||||
}
|
}
|
||||||
|
@ -4,13 +4,15 @@ const {helper} = require('./helper');
|
|||||||
class Target {
|
class Target {
|
||||||
/**
|
/**
|
||||||
* @param {!Puppeteer.TargetInfo} targetInfo
|
* @param {!Puppeteer.TargetInfo} targetInfo
|
||||||
|
* @param {!Puppeteer.Browser} browser
|
||||||
* @param {!function():!Promise<!Puppeteer.CDPSession>} sessionFactory
|
* @param {!function():!Promise<!Puppeteer.CDPSession>} sessionFactory
|
||||||
* @param {boolean} ignoreHTTPSErrors
|
* @param {boolean} ignoreHTTPSErrors
|
||||||
* @param {boolean} setDefaultViewport
|
* @param {boolean} setDefaultViewport
|
||||||
* @param {!Puppeteer.TaskQueue} screenshotTaskQueue
|
* @param {!Puppeteer.TaskQueue} screenshotTaskQueue
|
||||||
*/
|
*/
|
||||||
constructor(targetInfo, sessionFactory, ignoreHTTPSErrors, setDefaultViewport, screenshotTaskQueue) {
|
constructor(targetInfo, browser, sessionFactory, ignoreHTTPSErrors, setDefaultViewport, screenshotTaskQueue) {
|
||||||
this._targetInfo = targetInfo;
|
this._targetInfo = targetInfo;
|
||||||
|
this._browser = browser;
|
||||||
this._targetId = targetInfo.targetId;
|
this._targetId = targetInfo.targetId;
|
||||||
this._sessionFactory = sessionFactory;
|
this._sessionFactory = sessionFactory;
|
||||||
this._ignoreHTTPSErrors = ignoreHTTPSErrors;
|
this._ignoreHTTPSErrors = ignoreHTTPSErrors;
|
||||||
@ -60,6 +62,13 @@ class Target {
|
|||||||
return 'other';
|
return 'other';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {!Puppeteer.Browser}
|
||||||
|
*/
|
||||||
|
browser() {
|
||||||
|
return this._browser;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {!Puppeteer.TargetInfo} targetInfo
|
* @param {!Puppeteer.TargetInfo} targetInfo
|
||||||
*/
|
*/
|
||||||
@ -76,4 +85,4 @@ class Target {
|
|||||||
|
|
||||||
helper.tracePublicAPI(Target);
|
helper.tracePublicAPI(Target);
|
||||||
|
|
||||||
module.exports = Target;
|
module.exports = Target;
|
||||||
|
@ -1562,4 +1562,10 @@ module.exports.addTests = function({testRunner, expect, puppeteer, DeviceDescrip
|
|||||||
await closedPromise;
|
await closedPromise;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('Page.browser', function() {
|
||||||
|
it('should return the correct browser instance', async function({ page, browser }) {
|
||||||
|
expect(page.browser()).toBe(browser);
|
||||||
|
});
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user