У меня есть скрипт 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);
};
журнал показывает мне правильный / желаемый результат для селекторной переменной, а функция наведения не выдает никаких ошибок. Однако обещанный результат возвращается неопределенным. Есть ли проблема при смешивании идентификаторов и классов?
Кроме того, когда я устанавливаю для debugWindow значение true, окно chrome не прокручивается до элемента.
Редактировать: Ответ, мой viewport.height в config.js был слишком мал.