mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
Throw error on failed querySelector
This commit is contained in:
parent
59a62e46f3
commit
1fc627d9eb
@ -109,6 +109,7 @@ class NetworkManager extends EventEmitter {
|
||||
*/
|
||||
_onResponseReceived(event) {
|
||||
let request = this._idToRequest.get(event.requestId);
|
||||
// FileUpload sends a response without a matching request.
|
||||
if (!request)
|
||||
return;
|
||||
let response = new Response(request, event.response, this._getResponseBody.bind(this, event.requestId));
|
||||
|
@ -493,10 +493,13 @@ class Page extends EventEmitter {
|
||||
* @param {!Promise<number>}
|
||||
*/
|
||||
async _querySelector(selector) {
|
||||
return (await this._client.send('DOM.querySelector', {
|
||||
let {nodeId} = await this._client.send('DOM.querySelector', {
|
||||
nodeId: await this._rootNodeId(),
|
||||
selector
|
||||
})).nodeId;
|
||||
});
|
||||
if (!nodeId)
|
||||
throw new Error('No node found for selector: ' + selector);
|
||||
return nodeId;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -543,6 +543,15 @@ describe('Puppeteer', function() {
|
||||
await page.click('button');
|
||||
expect(await page.evaluate(() => result)).toBe('Clicked');
|
||||
}));
|
||||
it('should fail to click a missing button', SX(async function() {
|
||||
await page.navigate(STATIC_PREFIX + '/input/button.html');
|
||||
try {
|
||||
await page.click('button.does-not-exist');
|
||||
fail('Clicking the button did not throw.')
|
||||
} catch(error) {
|
||||
expect(error.message).toBe('No node found for selector: button.does-not-exist');
|
||||
}
|
||||
}));
|
||||
it('should type into the textarea', SX(async function() {
|
||||
await page.navigate(STATIC_PREFIX + '/input/textarea.html');
|
||||
await page.focus('textarea');
|
||||
|
Loading…
Reference in New Issue
Block a user