feat(FrameManager): improve waiting for selector to be hidden error message (#2911)

Fixes #2854
This commit is contained in:
Andy Fleming 2018-07-26 16:24:04 -07:00 committed by Andrey Lushnikov
parent 14e69d189c
commit 3d12f1f279
2 changed files with 9 additions and 1 deletions

View File

@ -728,7 +728,8 @@ class Frame {
const waitForHidden = !!options.hidden;
const polling = waitForVisible || waitForHidden ? 'raf' : 'mutation';
const timeout = helper.isNumber(options.timeout) ? options.timeout : 30000;
return new WaitTask(this, predicate, `${isXPath ? 'XPath' : 'selector'} "${selectorOrXPath}"`, polling, timeout, selectorOrXPath, isXPath, waitForVisible, waitForHidden).promise;
const title = `${isXPath ? 'XPath' : 'selector'} "${selectorOrXPath}"${waitForHidden ? ' to be hidden' : ''}`;
return new WaitTask(this, predicate, title, polling, timeout, selectorOrXPath, isXPath, waitForVisible, waitForHidden).promise;
/**
* @param {string} selectorOrXPath

View File

@ -318,6 +318,13 @@ module.exports.addTests = function({testRunner, expect}) {
expect(error).toBeTruthy();
expect(error.message).toContain('waiting for selector "div" failed: timeout');
});
it('should have an error message specifically for awaiting an element to be hidden', async({page, server}) => {
await page.setContent(`<div></div>`);
let error = null;
await page.waitForSelector('div', {hidden: true, timeout: 10}).catch(e => error = e);
expect(error).toBeTruthy();
expect(error.message).toContain('waiting for selector "div" to be hidden failed: timeout');
});
it('should respond to node attribute mutation', async({page, server}) => {
let divFound = false;