Časovne omejitve waitForSelector v Puppeteerju po dodajanju posrednika
Preverite odgovor navigacije in dostavljeni dokument, preden čakanje na element obravnavate kot napako povezave prek posrednika.
Časovna omejitev pri waitForSelector pomeni, da pričakovani element ni izpolnil svojega pogoja čakanja. Dodajanje posrednika, preden se je pojavil, ne dokazuje, da je TCP povezava prek posrednika potekla.
- Shranite dokaze o navigaciji. Zabeležite končni URL, stanje glavnega odgovora in ustrezne neuspele zahteve pred čakanjem na selektor. V Puppeteerju se odgovor z napako HTTP ne vrže nujno kot izjema navigacije.
- Preverite dostavljeni dokument. Njegov naslov ali skrbno prekrit posnetek zaslona lahko razkrije izziv za prijavo, stran z zavrnjenim dostopom ali drugo regionalno stran. Mogoče je, da je imela ciljna stran tudi neuspele zahteve aplikacije; preverite še selektor in okvir.
- Vsak izziv rešite pri njegovem viru. Za izziv posrednika pred navigacijo nastavite podprto preverjanje pristnosti posrednika. Izziv na strani cilja spada v pooblaščeni delovni tok aplikacije in ima svoje poverilnice.
To pogosto razkrije koristne dokaze, ki so obstajali, preden je čakanje na element postalo prva izjema, ki jo je prijavila vaša koda. Če posredniku predate geslo spletnega mesta, to ne more popraviti tistega prejšnjega dokumenta.
Časovnik izberite, ko ugotovite neuspešno operacijo. Navigacija, nastavitev omrežja in čakanja na elemente imajo različne meje. Res počasen vmesnik lahko upraviči daljše čakanje na selektor; stran z napako pa bo ostala napačen dokument.
Med primerjavo ohranite sejo brskalnika in pot nespremenjeni. Spreminjanje posrednika, selektorja in celotnega stanja brskalnika v enem poskusu skrije, kateri pogoj je bil pomemben.