feat(firefox): support consoleMessage.location() (#4002)

This commit is contained in:
Andrey Lushnikov 2019-02-13 19:56:56 -08:00 committed by GitHub
parent 2275c3c0c8
commit e3b76b2beb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 9 deletions

View File

@ -2344,8 +2344,8 @@ puppeteer.launch().then(async browser => {
#### consoleMessage.location()
- returns: <[Object]>
- `url` <[string]> URL of the resource if known or `undefined` otherwise.
- `lineNumber` <[number]> line number in the resource if known or `undefined` otherwise.
- `columnNumber` <[number]> column number in the resource if known or `undefined` otherwise.
- `lineNumber` <[number]> 0-based line number in the resource if known or `undefined` otherwise.
- `columnNumber` <[number]> 0-based column number in the resource if known or `undefined` otherwise.
#### consoleMessage.text()
- returns: <[string]>

View File

@ -571,9 +571,9 @@ class Page extends EventEmitter {
this.emit(Events.Page.Close);
}
_onConsole({type, args, frameId}) {
_onConsole({type, args, frameId, location}) {
const frame = this._frameManager.frame(frameId);
this.emit(Events.Page.Console, new ConsoleMessage(type, args.map(arg => createHandle(frame._executionContext, arg))));
this.emit(Events.Page.Console, new ConsoleMessage(type, args.map(arg => createHandle(frame._executionContext, arg)), location));
}
/**
@ -589,9 +589,14 @@ class ConsoleMessage {
* @param {string} type
* @param {!Array<!JSHandle>} args
*/
constructor(type, args) {
constructor(type, args, location) {
this._type = type;
this._args = args;
this._location = location;
}
location() {
return this._location;
}
/**

View File

@ -9,7 +9,7 @@
"node": ">=8.9.4"
},
"puppeteer": {
"firefox_revision": "6186c850885f1fa486e9987b5119d2b4bcb53499"
"firefox_revision": "0647e24cc0b90c07c8ddb32e63ce333839329527"
},
"scripts": {
"install": "node install.js",

View File

@ -25,7 +25,7 @@ try {
asyncawait = false;
}
module.exports.addTests = function({testRunner, expect, headless, Errors, DeviceDescriptors}) {
module.exports.addTests = function({testRunner, expect, headless, Errors, DeviceDescriptors, CHROME}) {
const {describe, xdescribe, fdescribe, describe_fails_ffox} = testRunner;
const {it, fit, xit, it_fails_ffox} = testRunner;
const {beforeAll, beforeEach, afterAll, afterEach} = testRunner;
@ -344,7 +344,7 @@ module.exports.addTests = function({testRunner, expect, headless, Errors, Device
lineNumber: undefined
});
});
it_fails_ffox('should have location for console API calls', async({page, server}) => {
it('should have location for console API calls', async({page, server}) => {
await page.goto(server.EMPTY_PAGE);
const [message] = await Promise.all([
waitEvent(page, 'console'),
@ -355,7 +355,7 @@ module.exports.addTests = function({testRunner, expect, headless, Errors, Device
expect(message.location()).toEqual({
url: server.PREFIX + '/consolelog.html',
lineNumber: 7,
columnNumber: 14,
columnNumber: CHROME ? 14 : 6, // console.|log vs |console.log
});
});
// @see https://github.com/GoogleChrome/puppeteer/issues/3865