What am I trying to achieve?
Execute script in test.js via built in executeScript
// css like selector
let myArg = '[data-test-selector="news"] [data-test-id="701340"]';
let element = await I.executeScript(function(selectorLocator){
return document.querySelector(selectorLocator);
}, myArg);
What do I get instead?
Error: Evaluation failed: DOMException: Failed to execute 'querySelector' on 'Document': : '[object HTMLBodyElement]' is not a valid selector.
at __puppeteer_evaluation_script__:3:35
Details
Found this Regress after upgrade to puppeteer 1.20.0, because of 1.19.0 successfully executed same test scenario.
- CodeceptJS version: 2.3.1
- NodeJS Version: v12.2.0
- Operating System: Ubuntu 18.04.3 LTS
- Puppeteer 1.20.0
Workaround
- Use
executeScript without parameter:
let selector = await I.executeScript(function(){
return document.querySelector('[data-test-selector="news"] [data-test-id="701340"]');
});
- Downgrade to
"puppeteer": "~1.19.0"
What am I trying to achieve?
Execute script in
test.jsvia built inexecuteScriptWhat do I get instead?
Details
Found this Regress after upgrade to
puppeteer 1.20.0, because of1.19.0successfully executed same test scenario.Workaround
executeScriptwithout parameter:"puppeteer": "~1.19.0"