UNPKG

backstopjs

Version:

BackstopJS: Catch CSS curveballs.

38 lines (32 loc) • 1.25 kB
module.exports = async (page, scenario) => { const hoverSelector = scenario.hoverSelectors || scenario.hoverSelector; const clickSelector = scenario.clickSelectors || scenario.clickSelector; const keyPressSelector = scenario.keyPressSelectors || scenario.keyPressSelector; const scrollToSelector = scenario.scrollToSelector; const postInteractionWait = scenario.postInteractionWait; // selector [str] | ms [int] if (keyPressSelector) { for (const keyPressSelectorItem of [].concat(keyPressSelector)) { await page.waitForSelector(keyPressSelectorItem.selector); await page.type(keyPressSelectorItem.selector, keyPressSelectorItem.keyPress); } } if (hoverSelector) { await page.waitForSelector(hoverSelector); await page.hover(hoverSelector); } if (clickSelector) { await page.waitForSelector(clickSelector); await page.click(clickSelector); } if (postInteractionWait) { await new Promise(resolve => { setTimeout(resolve, postInteractionWait); }); } if (scrollToSelector) { await page.waitForSelector(scrollToSelector); await page.evaluate(scrollToSelector => { document.querySelector(scrollToSelector).scrollIntoView(); }, scrollToSelector); } };