Backstopjs Puppeteer page.hover选择错误的元素

时间:2018-11-12 13:10:17

标签: javascript puppeteer regression-testing backstop.js

我有一个按预期工作的onReady脚本(选择第一个元素):

module.exports = async (page, scenario, vp) => {
    console.log('SCENARIO > ' + scenario.label);
    await require('./../clickAndHoverHelper')(page, scenario);

    //custom code here
    await page.hover('.column-box.has-link .column-box-wrapper');

    //wait for css transitions
    await page.waitFor(1000);
};

但是,如果我想选择最后一个元素,它将停留在第五个元素上,而不是第14个(最后一个)上:

module.exports = async (page, scenario, vp) => {
    await require('./../clickAndHoverHelper')(page, scenario);

    // custom code here

    await page.evaluate('window.scrollTo(0, document.body.scrollHeight)'); //scroll to end

    const boxid = await page.$$eval('.column-box.has-link', boxes => {
        return boxes.pop().id;
    });

    const lastColumnBoxSelector = '#' + boxid + ' .column-box-wrapper';
    console.log("selector: " + lastColumnBoxSelector);
    const promiseResult = await page.hover(lastColumnBoxSelector);
    console.log(JSON.stringify(promiseResult));

    //wait for css transitions
    await page.waitFor(15000);
};

日志向我显示选择器变量的正确/期望结果,并且悬停功能未引发任何错误。许诺结果返回未定义。混合ID和类时有问题吗?

此外,当我将debugWindow设置为true时,chrome窗口不会向下滚动到元素。

编辑:答案是,我在config.js中的viewport.height太小了。

0 个答案:

没有答案