Apabila bekerja dengan selenium untuk mengikis data, adalah penting untuk mengendalikan elemen dinamik yang mengambil masa untuk muncul. Walau bagaimanapun, pengguna telah menghadapi masalah di mana WebDriverWait, yang sepatutnya menjeda pelaksanaan sehingga elemen kelihatan, tidak berfungsi seperti yang diharapkan. Isu ini berlaku hanya dalam keadaan terpencil, di mana elemen kelihatan, tetapi WebDriverWait gagal menemuinya.
Mengikut kod pengguna, mereka menggunakan WebDriverWait dengan kelewatan 20 saat dan kaedah presence_of_element_located(). Pencari elemen sedang mencari butang yang membuka tetingkap baharu, membenarkan pengguna memilih lajur tersuai.
Untuk menyelesaikan isu ini, disyorkan untuk menggunakan element_to_be_clickable() dan bukannya presence_of_element_located (). Kaedah presence_of_element_located() hanya memastikan elemen wujud pada DOM, manakala element_to_be_clickable() mengesahkan bahawa elemen itu bukan sahaja boleh dilihat tetapi juga boleh diklik. Perubahan ini sepatutnya menangani isu kegagalan sekali-sekala untuk memilih elemen dalam tetingkap baharu, walaupun ia kelihatan.
Untuk menjelaskan lagi keadaan, mari kita periksa ketiga-tiga kaedah disebutkan:
Dalam kes khusus ini, menggunakan element_to_be_clickable() memastikan bahawa butang lajur tersuai bukan sahaja hadir dan kelihatan tetapi juga didayakan dan sedia untuk diklik. Ini sepatutnya menghapuskan kegagalan sekali-sekala dalam memilih elemen dalam tetingkap baharu.
Atas ialah kandungan terperinci Mengapa Selenium WebDriverWait Saya Tidak Berfungsi, Walaupun Elemennya Kelihatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!