#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().