Cara Menentukan Penyiapan Muatan Halaman dalam Selenium
Selenium menyediakan pelbagai pendekatan untuk menyemak sama ada halaman web telah dimuatkan sepenuhnya, termasuk:
Tetapan Tamat Masa Muat Halaman
Menggunakan kaedah pageLoadTimeout(), Selenium menunggu pemuatan halaman selesai dalam masa tamat yang ditentukan. Walau bagaimanapun, kaedah ini mungkin tidak boleh dipercayai dalam semua kes.
Tetapkan Strategi Pemuatan Halaman kepada Normal
Anda boleh menetapkan pageLoadStrategy kepada normal menggunakan kelas DesiredCapabilities atau ChromeOptions. Ini memastikan penyemak imbas menunggu dokumen.readyState menjadi "lengkap" sebelum melaksanakan baris kod seterusnya.
Menunggu Panggilan JavaScript dan Ajax
Untuk menunggu untuk semua panggilan JavaScript dan Ajax selesai, anda boleh menggunakan fungsi tersuai yang menyemak jQuery.active harta:
public void waitForAjax2Complete() throws InterruptedException { while (true) { if ((Boolean) ((JavascriptExecutor)driver).executeScript("return jQuery.active == 0")){ break; } Thread.sleep(100); } }
Menggunakan ExpectedConditions
Anda boleh menggunakan kelas ExpectedConditions untuk menunggu syarat tertentu dipenuhi sebelum meneruskan, seperti tajuk halaman yang mengandungi tertentu rentetan:
new WebDriverWait(driver, 10).until(ExpectedConditions.titleContains("partial_title_of_application_under_test"));
Atau keterlihatan sesuatu elemen:
WebElement ele = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("xpath_of_the_desired_element")));
Kesimpulan
Walaupun tiada fungsi generik dalam Selenium untuk menyemak sama ada halaman telah dimuatkan sepenuhnya, pendekatan yang diterangkan di atas menyediakan penyelesaian yang berkesan untuk kes guna. Dengan mempertimbangkan strategi pemuatan halaman, menunggu panggilan JavaScript dan Ajax, atau menggunakan ExpectedConditions, anda boleh memastikan ujian anda menunggu keadaan yang sesuai sebelum meneruskan.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Penyiapan Pemuatan Halaman Web dalam Selenium?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!