Программа зависает во вложенном цикле на странице page.evaluate - Puppeteer - NodeJS - PullRequest
0 голосов
/ 03 марта 2019

Я новичок в кукловоде, я написал программу для автоматического выбора опции из выпадающего списка для меня.но он замерзает, как только попадает во второй цикл.Я попытался удалить await и заменить оператор return на массив, но безрезультатно (код ниже).Как это исправить?Спасибо!:) PS: Дайте мне знать, если вам нужен весь код:)

var numDays = await page.evaluate(() => { //INIT DATAS
    return document.getElementsByClassName("input")
        .length;
});
console.log(numDays);
var selected = "";
for (var i = 0; i <
    numDays; i++) { // # of days signup loop
    var numOptions = await page.evaluate(i => { //INIT DATAS
        return document.getElementsByClassName("input")[i].options.length;
    }, i); //init data for numOptions loop
    for (var j = 1; j <
        numOptions; j++) { // 17x options loop | Find study hall option loop
        var result = await page.evaluate(i => {
            return document.getElementsByClassName("input")[i].options[j].value;
        }, i, j);
        var resultTxt = await page.evaluate(i => {
            return document.getElementsByClassName("input")[i].options[j].text;
        }, i, j);
        if (resultTxt.toLowerCase()
            .indexOf('study hall') != -1 || resultTxt.toLowerCase()
            .indexOf('catch up on work') != -1) {
            selected = result;
        } //choose study hall option
    }
}

1 Ответ

0 голосов
/ 03 марта 2019

Хорошо, я обнаружил проблему к проблеме ... Оказывается, я неправильно импортирую j на двух страницах.(действительно глупая проблема, но теперь она исправлена:)

Спасибо, Анхен, за помощь в выяснении проблемы :) Я могу пометить ваше сообщение как ответ, если вы отправите сообщение.Просто дай мне знать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...