Rumah > Java > javaTutorial > teks badan

Memahami Penantian dalam Selenium 4

PHPz
Lepaskan: 2024-08-19 06:06:32
asal
908 orang telah melayarinya

Understanding Waits in Selenium 4

Dalam siaran ini, kami akan meneroka pelbagai jenis penantian dalam Selenium 4, termasuk penambahbaikan baharu dan amalan terbaik untuk penggunaannya.

Jenis Penantian dalam Selenium 4
Selenium 4 menyediakan tiga jenis penantian utama:

  1. Penantian Tersirat
  2. Penantian Eksplisit
  3. Penantian yang Fasih

Jom selami setiap satu!

  1. Penantian Tersirat Penantian Tersirat ialah jenis penantian yang paling mudah. Mereka memberitahu WebDriver untuk menunggu untuk jangka masa tertentu apabila cuba mencari elemen jika ia tidak tersedia dengan segera. Setelah masa ditetapkan, ia digunakan secara global untuk semua elemen dalam ujian. Contoh Kod:
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

Salin selepas log masuk

Dalam contoh ini, Selenium akan menunggu sehingga 10 saat untuk elemen muncul sebelum melontar NoSuchElementException. Penantian dikenakan pada setiap carian elemen sepanjang sesi.

Kebaikan:

Mudah untuk dilaksanakan.
Sesuai untuk projek mudah.
Keburukan:

Boleh memperlahankan pelaksanaan ujian kerana ia menggunakan penantian secara global, walaupun ia tidak diperlukan.
Boleh membawa kepada tingkah laku ujian yang tidak dapat diramalkan apabila digunakan dengan jenis menunggu yang lain.

  1. Penantian Eksplisit Penantian Eksplisit membolehkan anda menetapkan syarat untuk elemen tertentu. Anda boleh memberitahu WebDriver untuk menunggu sehingga syarat tertentu dipenuhi sebelum meneruskan. Penantian ini lebih terperinci dan memberi anda kawalan yang lebih besar ke atas masa menunggu.

Contoh Kod:

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(15));
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("example")));
Salin selepas log masuk

Dalam contoh ini, WebDriver akan menunggu sehingga 15 saat sehingga elemen kelihatan. Jika elemen muncul sebelum 15 saat, penantian akan tamat lebih awal.

Syarat Penantian Eksplisit Biasa:

visibilityOfElementLocated()
elementToBeClickable()
presenceOfElementLocated()
alertIsPresent()
Kelebihan:

Sangat boleh disesuaikan dan lebih cekap daripada penantian tersirat.
Hanya menunggu apabila syarat tertentu diperlukan.
Keburukan:

Memerlukan lebih banyak kod, yang boleh meningkatkan kerumitan.
Menguruskan berbilang penantian eksplisit boleh menjadi rumit dalam projek besar.

  1. Penantian yang Fasih Fluent Waits ialah versi lanjutan bagi penantian eksplisit. Mereka membenarkan anda menentukan masa maksimum untuk menunggu, selang pengundian, dan mengendalikan pengecualian. Penantian yang lancar berguna apabila berurusan dengan kandungan dinamik yang memerlukan pemeriksaan kerap.
Wait<WebDriver> fluentWait = new FluentWait<>(driver)
    .withTimeout(Duration.ofSeconds(20))
    .pollingEvery(Duration.ofMillis(500))
    .ignoring(NoSuchElementException.class);

WebElement element = fluentWait.until(driver -> driver.findElement(By.id("example")));

Salin selepas log masuk

Di sini, WebDriver akan menyemak elemen setiap 500 milisaat dan menunggu sehingga 20 saat sebelum tamat masa. Ia juga akan mengabaikan NoSuchElementException pada masa ini.

Kebaikan:

Memberi lebih fleksibiliti dan kawalan ke atas cara menunggu dikendalikan.
Membenarkan penyesuaian selang pengundian dan pengendalian pengecualian.
Keburukan:

Boleh menjadi lebih kompleks untuk disediakan dan difahami.
Penyesuaian yang berlebihan boleh menyebabkan kod mengelirukan dan sukar diselenggara.
Penambahbaikan dalam Selenium 4 Waits
Selenium 4 memperkenalkan beberapa penambahbaikan, terutamanya dalam cara anda menguruskan penantian:

Sintaks Lebih Baik: Selenium 4 menggunakan Tempoh berbanding TimeUnit sebelumnya, menjadikannya lebih intuitif dan boleh dibaca.
Pencari Relatif: Anda kini boleh menunggu elemen yang berkaitan dengan elemen lain (cth., di sebelah kiri, dekat, dll.).
WebDriverWait Dipertingkat: Kelas WebDriverWait dalam Selenium 4 lebih diselaraskan dan lebih mudah digunakan dengan sintaks moden.

Amalan Terbaik untuk Menggunakan Waits dalam Selenium 4
Gunakan Penantian Eksplisit Daripada Penantian Tersirat: Untuk kawalan dan prestasi yang lebih baik, pilih penantian eksplisit, terutamanya dalam senario yang rumit.
Elakkan Pencampuran Penantian Tersirat dan Eksplisit: Menggunakan kedua-duanya boleh menyebabkan tingkah laku yang tidak dapat diramalkan dan peningkatan masa menunggu.

Tetapkan Nilai Tamat Masa Yang Munasabah: Elakkan menetapkan menunggu lama yang tidak perlu. Analisis gelagat aplikasi anda untuk menentukan masa menunggu yang sesuai.

Gunakan Fluent Waits untuk Elemen Dinamik: Jika elemen sangat dinamik, pertimbangkan untuk menggunakan fasih menunggu dengan selang pengundian untuk mengurangkan menunggu yang tidak perlu.

Kesimpulan
Pengendalian menunggu dengan berkesan dalam Selenium 4 adalah penting untuk menulis ujian automatik yang stabil dan boleh dipercayai. Memahami masa dan cara menggunakan penantian tersirat, eksplisit dan lancar boleh meningkatkan keteguhan suite ujian anda. Dengan peningkatan dalam Selenium 4, anda mempunyai alat yang lebih berkuasa untuk mengurus isu penyegerakan.

Atas ialah kandungan terperinci Memahami Penantian dalam Selenium 4. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!