@mekev
תנסה להעיף את השורה הזאת..
אני רואה שהאימות מתבצע תחת הURL הראשון של הכניסה..
await page.waitForNavigation({ waitUntil: 'networkidle2', timeout: 60000 });
עריכה
בדקתי את הקוד הבא בכניסה לאתר הרגיל של בנק הפועלים כניסה ראשונה ממחשב - שהוא דורש גם אימות OTP.
וזה עבד לי - ראיתי את האינפוטים עם המספרים.
// פתיחת הדפדפן במצב דיבוג (headful)
const browser = await puppeteer.launch({
headless: false, // הופך את המצב ל-Headful
});
const pages = await browser.pages();
const page = pages[0]; // שימוש בטאב הראשון
await page.goto("https://login.bankhapoalim.co.il/ng-portals/auth/he/");
// הזנת מידע לתוך האינפוטים
await page.type('#userCode', userCode); // הזנת טקסט לאינפוט הראשון (לפי מזהה id)
await page.type('#password', password); // הזנת טקסט לאינפוט השני (לפי מזהה id)
// לחיצה על כפתור מסוג submit עם הטקסט "כניסה"
await page.evaluate(() => {
const button = Array.from(document.querySelectorAll('button[type="submit"]'))
.find(el => el.innerText === 'כניסה');
if (button) button.click();
});
await page.waitForSelector('poalim-separated-characters-input');
// רשימת הספרות של הקוד שברצונך להזין
const otpCode = ['1', '2', '3', '4', '5'];
// הזן את הספרות באינפוטים בהתאמה
for (let i = 0; i < otpCode.length; i++) {
const selector = `input[data-testid="separated-${i}"]`; // התאמת הסלקטור ל- data-testid
await page.focus(selector); // פוקוס על האינפוט המתאים
await page.type(selector, otpCode[i]); // הקלד את הספרה
}