Mengatasi Perangkap "StaleElementReferenceException" dalam Selenium
Dalam bidang pengujian Selenium menggunakan Java, perangkap biasa yang timbul ialah " StaleElementReferenceException." Pengecualian ini berlaku apabila elemen yang sebelum ini ditemui menjadi tidak boleh diakses, selalunya disebabkan oleh operasi DOM yang menyebabkan elemen tidak tersedia buat sementara waktu. Untuk meningkatkan kestabilan ujian anda dan mengelakkan pengecualian ini, pertimbangkan untuk melaksanakan strategi berikut:
Satu pendekatan yang berkesan ialah menggunakan WebDriverWait, kelas yang menyediakan cara untuk menunggu keadaan tertentu menjadi benar sebelum membuang pengecualian. Dengan memasukkan WebDriverWait ke dalam kod anda, anda boleh menentukan jangka masa di mana elemen mesti ditemui dan diklik untuk mengelakkan StaleElementReferenceException.
Selain itu, anda boleh menggunakan mekanisme cuba semula, yang melibatkan percubaan untuk mencari beberapa elemen. kali dalam satu gelung sehingga ia tersedia atau bilangan maksimum percubaan semula dicapai. Strategi ini membenarkan perubahan DOM sementara tanpa menyebabkan ujian gagal. Contoh mekanisme cuba semula sedemikian boleh didapati di bawah:
public boolean retryingFindClick(By by) { boolean result = false; int attempts = 0; while(attempts < 2) { try { driver.findElement(by).click(); result = true; break; } catch(StaleElementReferenceException e) {} attempts++; } return result; }
Dengan menggunakan mekanisme WebDriverWait dan cuba semula, anda boleh mengurangkan kesan "StaleElementReferenceException" dan meningkatkan kebolehpercayaan ujian Selenium anda. Ingat untuk menentukan masa dan kekerapan percubaan semula yang optimum berdasarkan prestasi dan tingkah laku aplikasi anda yang diuji.
Atas ialah kandungan terperinci Bagaimanakah Mekanisme WebDriverWait dan Cuba Semula Mencegah StaleElementReferenceException dalam Selenium?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!