WebDriver: Menunggu Elemen Menggunakan Java
Pengenalan
Dalam ujian automatik, ia adalah penting untuk memastikan unsur-unsur hadir dan kelihatan sebelum berinteraksi dengannya. Artikel ini meneroka cabaran yang dihadapi apabila menggunakan penantian tersirat dan mengemukakan pendekatan alternatif untuk secara eksplisit menunggu elemen dipaparkan.
Penantian Tersirat
Pada mulanya, penantian tersirat telah digunakan untuk mengendalikan isu menunggu unsur:
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); driver.findElement(By.id(prop.getProperty(vName))).click();
Namun, tersirat penantian ada hadnya. Mereka menunggu elemen muncul dalam tamat masa yang ditentukan, tetapi jika elemen itu tidak ditemui, mereka terus mencarinya, yang berpotensi membawa kepada masa menunggu yang dilanjutkan.
Penantian Eksplisit
Untuk menangani batasan ini, strategi menunggu yang jelas boleh digunakan. Satu pendekatan melibatkan penggunaan gelung bermasa:
for (int second = 0;; second++) { Thread.sleep(sleepTime); if (second >= 10) fail("timeout : " + vName); try { if (driver.findElement(By.id(prop.getProperty(vName))).isDisplayed()) break; } catch (Exception e) {...} } driver.findElement(By.id(prop.getProperty(vName))).click();
Walaupun pendekatan ini memberikan kawalan eksplisit ke atas masa menunggu, ia boleh menyusahkan dan terdedah kepada keadaan perlumbaan.
WebDriverWait
Pendekatan yang lebih mantap dan cekap ialah menggunakan WebDriverWait kelas:
WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds); wait.until(ExpectedConditions.visibilityOfElementLocated(By.id<locator>));
Kelas WebDriverWait menyediakan kaedah untuk senario menunggu yang berbeza, seperti menunggu elemen kelihatan, boleh diklik atau hadir. Ia secara konsisten menunggu tamat masa yang ditentukan dan mengeluarkan pengecualian jika syarat tidak dipenuhi, menjadikan pelaksanaan ujian lebih dipercayai dan mengurangkan kekeliruan.
Kesimpulan
Strategi menunggu yang eksplisit menggunakan WebDriverWait ialah pendekatan yang boleh dipercayai dan berkesan untuk mengendalikan kehadiran dan keterlihatan elemen dalam ujian automatik. Ia menyediakan kawalan yang lebih terperinci, mempertingkatkan kekukuhan ujian dan mengurangkan potensi isu menunggu berbanding dengan menunggu tersirat atau gelung bermasa.
Atas ialah kandungan terperinci Bagaimanakah WebDriverWait Boleh Meningkatkan Elemen Menunggu dalam Selenium WebDriver dengan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!