Почему я не был перенаправлен (модальный просто исчезает), когда кукольник нажал кнопку входа в систему после ввода электронной почты и пароля?

#puppeteer

Вопрос:

Я не указал свой правильный адрес электронной почты и пароль. Однако ввод неправильного адреса электронной почты и пароля, а затем нажатие кнопки входа в систему все равно приведет к исчезновению модала.

ожидаемый результат
Мне скажут, что ввели неправильную комбинацию электронной почты и пароля, и модальный не должен исчезнуть.

Что происходит вместо этого?
Модальный исчезает.

Код

 const puppeteer = require('puppeteer');

(async () => {
    // const browser = await puppeteer.launch();
    const browser = await puppeteer.launch({ headless: false });
    const page = await browser.newPage();
    await page.setViewport({
        width: 1550,
        height: 700,
        deviceScaleFactor: 1,
    });
    await page.goto('https://splinterlands.com');
    
    //click log in button to fill form
    await page.$eval("#log_in_button button", (el)=>{
        el.click() 
    });

    //type username to username section
    await page.$eval("input#email.form-control", (el)=>{
        el.value = "@gmail.com"
    });
    
    //type password to password section
    await page.$eval("input#password.form-control", (el)=>{
        el.value = "b"
    });

    //click log in button to log in
    await page.$eval(".form-horizontal button.btn.btn-primary.btn-lg", (el)=>{
        el.click()
    });

})();
 

Комментарии:

1. Я попытался сделать что-то подобное с переполнением стека, и мне удалось войти в систему. Я не знаю, почему это не работает.

Ответ №1:

Задержите нажатие кнопки входа в систему, включив эту

 await page.$eval(".form-horizontal button.btn.btn-primary.btn-lg", (el)=>{
    el.click()
});

 

к этому

 await setTimeout( ()=>{
    page.$eval(".form-horizontal button.btn.btn-primary.btn-lg", (el)=>{
        el.click()
    });
}, 1000);
 

К сожалению, мне еще предстоит понять, почему это работает.

Ответ №2:

попробуйте отправить форму вместо того, чтобы нажимать на кнопку.

 await page.$eval('form-selector', form => form.submit());
 

Комментарии:

1. Модальное значение исчезает, аналогично тому, когда я использовал el.click().