Pengenalan
Menentukan sama ada halaman web telah dimuatkan sepenuhnya dalam Selenium boleh menjadi penting untuk navigasi web yang boleh dipercayai dan mendapatkan semula data. Walaupun semakan keterlihatan elemen khusus biasanya digunakan, terdapat keperluan untuk penyelesaian generik.
Soalan
Saya cuba menentukan sama ada halaman web dimuatkan sepenuhnya dalam Selenium , memastikan semua kawalan dan kandungan ada. Walau bagaimanapun, menggunakan pendekatan menyemak 'document.readyState' dengan WebDriverWait nampaknya tidak berfungsi secara konsisten. Adakah terdapat fungsi generik yang tersedia dalam Selenium untuk menyemak sama ada halaman telah selesai dimuatkan?
Jawapan
Tidak, tiada fungsi generik khusus dalam Selenium untuk menyemak terus sama ada halaman telah dimuatkan sepenuhnya.
Muatan Halaman Strategi
Satu pendekatan ialah menetapkan 'pageLoadStrategy' kepada 'normal' menggunakan sama ada DesiredCapabilities atau ChromeOptions. Strategi ini menunggu sehingga klien penyemak imbas telah menerima 'document.readyState' yang sama dengan "complete." Walau bagaimanapun, ini tidak menjamin bahawa semua panggilan JavaScript dan Ajax selesai.
Ajax Completion
Untuk mengambil kira perkara ini, fungsi tersuai boleh dibuat untuk menunggu Ajax selesai, menyemak sama ada 'jQuery.active' bersamaan dengan 0.
Dijangka Syarat
Pendekatan yang lebih dipercayai ialah menggunakan WebDriverWait dengan ExpectedConditions. Ini membolehkan anda menunggu syarat tertentu dipenuhi, seperti keterlihatan elemen tertentu atau kehadiran tajuk tertentu.
Keterlihatan Elemen
Jika anda perlu memastikan bahawa elemen tertentu kelihatan sebelum meneruskan, gunakan ExpectedConditions.visibilityOfElementLocated() untuk menunggu elemen itu menjadi kelihatan.
Rujukan
Atas ialah kandungan terperinci Adakah Terdapat Fungsi Selenium Generik untuk Memeriksa Status Pemuatan Halaman Web dengan Amanah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!