Selenium's StaleElementException: Melintasi Halaman Web dalam Python
Apabila mengulangi hasil carian Amazon menggunakan Selenium WebDriver, sesetengah pengguna menemui StaleElementException pada yang kelima atau muka surat kedua. Ralat ini berlaku apabila Selenium cuba berinteraksi dengan elemen yang telah berubah atau hilang daripada DOM (Model Objek Dokumen).
Coretan kod yang disediakan menyerlahkan kesukaran untuk menatal ke bawah halaman untuk mencari bar nombor halaman, menuju ke StaleElementException pada baris "driver.execute_script". Mesej "StaleElementReferenceException" menunjukkan bahawa elemen yang dirujuk (dengan kelas "pagnCur") tidak lagi sah.
Walaupun pendekatan asal bertujuan untuk berulang melalui bilangan halaman tertentu, penyelesaian yang disediakan memudahkan tugas dengan berterusan mengklik butang "Seterusnya" sehingga ia dilumpuhkan. Pendekatan ini bergantung pada WebDriverWait untuk menunggu elemen butang "Seterusnya" menjadi boleh diklik. Jika WebDriverWait tamat masa (lalai ialah 10 saat), gelung akan terputus, dengan mengandaikan tiada lagi halaman untuk dilayari.
Adalah penting untuk ambil perhatian bahawa "implicitly_wait(10)" menunggu sehingga elemen hadir dalam DOM sehingga 10 saat, bukan 10 saat penuh. Jika elemen ditemui lebih awal, jangka masa "menunggu_implisit" telah selesai. Untuk memastikan penantian yang boleh dipercayai, menggunakan penantian eksplisit seperti "WebDriverWait" dengan pengesan elemen tertentu adalah disyorkan.
Atas ialah kandungan terperinci Mengapa Selenium Membuang StaleElementException Apabila Menatal Melalui Hasil Carian Amazon?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!