Dalam Java Seleneium-WebDriver, anda mungkin menghadapi senario di mana aplikasi mengambil masa untuk memuatkannya antara muka pengguna, menyebabkan kegagalan lokasi elemen. Untuk menangani perkara ini, anda mempunyai dua pilihan menunggu: tunggu tersirat dan eksplisit.
Tunggu Tersirat:
Seperti yang ditunjukkan dalam coretan kod anda, anda menetapkan tunggu tersirat sebanyak 2 saat:
<code class="java">driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);</code>
Ini bermakna pemandu akan menunggu selama maksimum 2 saat untuk elemen tersedia sebelum menimbulkan ralat.
Tunggu Eksplisit:
Penantian eksplisit memerlukan syarat tertentu untuk dipenuhi sebelum pemandu meneruskan. Kaedah WebDriverWait.until boleh digunakan untuk tujuan ini:
<code class="java">WebDriverWait wait = new WebDriverWait(driver, 10); WebElement textbox = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("textbox")));</code>
Di sini, pemandu akan menunggu sehingga 10 saat untuk elemen dengan ID "kotak teks" kelihatan sebelum meneruskan.
Mana Yang Lebih Baik?
Pilihan antara penantian tersurat dan tersirat bergantung pada situasi:
Syor:
Untuk situasi seperti anda, di mana kehadiran elemen tidak dijamin dalam jangka masa tertentu, menggunakan penantian yang jelas, terutamanya menunggu dengan lancar seperti yang disediakan dalam jawapan, adalah disyorkan.
<code class="java">public WebElement fluentWait(final By locator) { // Fluent wait implementation provided in the answer... } WebElement textbox = fluentWait(By.id("textbox"));</code>
Penantian yang lancar membolehkan anda menyesuaikan tamat masa dan selang pengundian, memberikan lebih fleksibiliti dan mengelakkan kelewatan yang tidak perlu.
Atas ialah kandungan terperinci Tunggu Tersirat vs Eksplisit dalam Selenium WebDriver: Mana Yang Perlu Anda Pilih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!