Przekroczenia limitu czasu waitForSelector w Puppeteer po dodaniu proxy
Sprawdź odpowiedź nawigacji i dostarczony dokument, zanim uznasz oczekiwanie na element za błąd połączenia przez proxy.
Przekroczenie limitu czasu przy waitForSelector oznacza, że oczekiwany element nie spełnił warunku oczekiwania. Dodanie proxy, zanim się pojawił, nie dowodzi, że połączenie TCP proxy wygasło.
- Zachowaj dowody nawigacji. Zapisz końcowy URL, status głównej odpowiedzi i powiązane nieudane żądania przed oczekiwaniem na selektor. W Puppeteer odpowiedź z błędem HTTP nie musi zostać rzucona jako wyjątek nawigacji.
- Sprawdź dostarczony dokument. Jego tytuł lub starannie zamaskowany zrzut ekranu mogą ujawnić wyzwanie logowania, stronę odmowy dostępu lub inną stronę regionalną. Możliwe też, że zamierzona strona miała nieudane żądania aplikacji; sprawdź także selektor i ramkę.
- Rozwiązuj każde wyzwanie u jego źródła. Skonfiguruj obsługiwane uwierzytelnianie proxy przed nawigacją w przypadku wyzwania proxy. Wyzwanie po stronie celu należy do autoryzowanego przepływu pracy aplikacji i ma własne dane uwierzytelniające.
Często ujawnia to przydatne dowody, które istniały, zanim oczekiwanie na element stało się pierwszym wyjątkiem zgłoszonym przez twój kod. Przekazanie proxy hasła witryny nie naprawi tego wcześniejszego dokumentu.
Wybierz licznik czasu po zidentyfikowaniu nieudanej operacji. Nawigacja, konfiguracja sieci i oczekiwania na elementy mają różne limity. Naprawdę wolny interfejs może uzasadniać dłuższe oczekiwanie na selektor; strona błędu pozostanie jednak niewłaściwym dokumentem.
Podczas porównywania utrzymuj stałą sesję przeglądarki i trasę. Zmiana proxy, selektora i całego stanu przeglądarki w jednej próbie ukrywa, który warunek miał znaczenie.