我有一个按预期工作的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太小了。