Variabel Toko, Gema, Peringatan, Penanganan PopUp di Selenium IDE

⚡ Ringkasan Cerdas

Simpan perintah di Selenium IDE menyimpan nilai runtime ke dalam variabel bernama, perintah echo mencetaknya ke log, dan serangkaian perintah khusus menangani peringatan, dialog konfirmasi, dan peralihan antara beberapa jendela browser.

  • 🔘 Buat variabel: Perintah store mengambil nilai di Target dan nama variabel di dalam Value.
  • ☑️ Bacalah kembali: Bungkus nama tersebut dengan ${ } di mana pun perintah menerima target atau nilai.
  • Cetak untuk keperluan debugging: Perintah `echo` menulis string literal atau variabel langsung ke log IDE.
  • 🧪 Peringatan diterima secara otomatis: IDE akan mengklik OK untuk Anda, jadi gunakan storeAlert untuk menangkap teks pesan.
  • Konfirmasi memerlukan keputusan: Letakkan chooseOkOnNextConfirmation sebelum perintah yang membuka dialog.
  • 📊 Pengalihan jendela: selectWindow menargetkan judul jendela, dan target null akan kembali ke jendela induk.

Simpan variabel, echo, alert, dan penanganan popup di Selenium IDE

Dalam tutorial ini Anda akan mempelajari perintah store, perintah echo, serta cara menangani alert dan popup. Selenium IDESecara bersama-sama, perintah-perintah ini mengubah skrip yang direkam tetap menjadi skrip yang bereaksi terhadap apa pun yang dikembalikan aplikasi saat dijalankan.

⚠️ Catatan tentang versi: Tangkapan layar di bawah ini berasal dari sumber aslinya. Firefox-plugin Selenium IDE, dan perintah-perintahnya menggunakan nama Selenese camelCase. Chrome saat ini, Firefox dan ekstensi Edge mempertahankan perilaku yang sama tetapi menulis sebagian besar nama perintah dengan spasi. Sebuah petaping Tabel tersebut muncul di dekat akhir artikel ini, dan setiap perintah dan tangkapan layar asli dipertahankan seperti yang dipublikasikan.

Selenium Variabel IDE

Toko

Untuk menyimpan variabel di Selenium IDE, kami menggunakan menyimpan perintah. Ilustrasi di bawah ini menyimpan nilai "tutorial" ke dalam variabel bernama "myVariable."

Selenium Perintah penyimpanan IDE dengan nilai tutorial disimpan ke dalam myVariable.

Untuk mengakses variabel, cukup lingkari variabel tersebut dengan simbol ${ … }. Misalnya, untuk memasukkan nilai “myVariable” ke dalam kotak teks “userName” pada Mercury Tur, masukkan ${myVariable} di kolom Nilai.

Selenium Ketik perintah IDE menggunakan ${myVariable} di kolom Nilai pada kotak teks userName.

Perintah Echo di Selenium IDE

Variabel yang tersimpan tidak terlihat sampai sesuatu mencetaknya, dan itulah yang terjadi. gema Perintah tersebut memang berfungsi. Perintah ini menulis pesan ke panel log IDE selama pemutaran ulang, yang menjadikannya cara tercepat untuk memastikan bahwa perintah store telah menangkap apa yang Anda harapkan sebelum Anda membuat pernyataan di atasnya.

Perintah ini menerima salah satu dari dua bentuk berikut:

  • Sebuah string literal. Masukkan teks ke dalam Target bidang, misalnya Langkah login selesai, untuk menandai titik pemeriksaan dalam naskah yang panjang.
  • Sebuah variabel. Masukkan ${myVariable} ke dalam Target kolom tersebut dan nilai yang tersimpan akan dicetak sebagai pengganti namanya.

Dua kebiasaan membuat perintah `echo` jauh lebih berguna daripada yang terlihat pada awalnya. Cetak variabel segera setelah perintah `store` yang membuatnya, sehingga kegagalan dapat terjadi. tracDiberikan pada tangkapan daripada pada pernyataan dua puluh langkah kemudian. Dan beri awalan pada setiap pesan dengan langkah yang terkait, karena panel log menampilkan setiap perintah dalam satu daftar datar. Perhatikan bahwa echo hanya menulis ke log — ia tidak pernah mengubah halaman dan tidak pernah gagal dalam pengujian, jadi aman untuk membiarkannya dalam skrip secara permanen.

StoreElementPresent

Perintah ini menyimpan nilai “true” atau “false” tergantung pada keberadaan elemen yang ditentukan. Skrip di bawah ini menyimpan nilai Boolean “true” ke “var1” dan “false” ke “var2”. Untuk memverifikasi, kita akan menggunakan perintah echo untuk menampilkan nilai var1 dan var2. Basis URL untuk ilustrasi di bawah ini diatur ke Mercury Beranda tur.

Selenium IDE storeElementPresent menyimpan nilai true ke var1 dan false ke var2, yang terc отражается dalam log.

Teks Toko

Perintah ini digunakan untuk menyimpan teks bagian dalam suatu elemen ke dalam sebuah variabel. Ilustrasi di bawah ini menyimpan teks bagian dalam tag h1 pada halaman pendaftaran Facebook ke dalam variabel bernama “textVar.”

Selenium Perintah storeText IDE membaca css=h1 ke dalam variabel textVar.

Karena ini adalah satu-satunya elemen sejenis di halaman tersebut, aman untuk menggunakan “css=h1” sebagai target kita. Gambar di bawah ini menunjukkan hal tersebut. Selenium IDE berhasil menyimpan string "Sign Up" dalam variabel "textVar", karena perintah echo mencetak nilainya dengan benar.

Selenium Pencetakan panel log IDE Daftar sebagai nilai yang tersimpan di textVar

Peringatan, Popup, dan Banyak Windows

Notifikasi mungkin merupakan bentuk jendela pop-up yang paling sederhana. Yang paling umum Selenium Perintah IDE yang digunakan dalam menangani peringatan adalah sebagai berikut:

Alerts penggunaan

menegaskan Peringatan

tegaskanTidak Waspada

Mengambil pesan peringatan dan membandingkannya dengan nilai string yang telah Anda tentukan.

menegaskanAlertPresent

tegaskanAlertNotPresent

memastikan apakah peringatan ada atau tidak
peringatan toko Mengambil pesan peringatan dan menyimpannya dalam variabel yang Anda tentukan.
tokoAlertPresent Mengembalikan TRUE jika ada peringatan, FALSE jika tidak ada.

verifikasiPeringatan

verifikasiNotAlert

Mengambil pesan peringatan dan memverifikasi apakah pesan tersebut sama dengan nilai string yang Anda tentukan.

verifikasiAlertPresent

verifikasiAlertNotPresent

memverifikasi apakah peringatan ada atau tidak

Ingatlah dua hal berikut saat bekerja dengan peringatan:

  • Selenium IDE secara otomatis mengklik tombol OK pada jendela peringatan, sehingga Anda tidak akan dapat melihat peringatan yang sebenarnya.
  • Selenium IDE tidak dapat menangani peringatan yang muncul di dalam fungsi onload() halaman. IDE hanya menangani peringatan yang dihasilkan setelah halaman sepenuhnya dimuat.

Dalam contoh ini, kita menggunakan perintah storeAlert untuk menunjukkan bahwa meskipun Selenium IDE tidak menampilkan peringatan sebenarnya, tetapi tetap dapat mengambil pesan tersebut.

Langkah 1) In Selenium IDE, atur Basis URL ke http://jsbin.com. Selengkapnya URL adalah http://jsbin.com/usidix. Cuplikan jsbin ini berasal dari Firefox-Plugin ini sudah tidak lagi berfungsi; halaman mana pun dengan tombol yang memunculkan peringatan akan menghasilkan hasil yang sama.

Langkah 2) Buat skrip seperti yang ditunjukkan di bawah ini. Perintah `click` menargetkan tombol "Go!", `storeAlert` menangkap pesan ke dalam `alertMessage`, dan `echo` mencetaknya.

Selenium Skrip IDE dengan perintah click, storeAlert, dan echo terhadap halaman demo alert jsbin.

Langkah 3) Jalankan skrip, dan jangan berharap untuk melihat peringatan yang sebenarnya. Panel log di bawah menunjukkan pesan yang terekam meskipun dialog tersebut tidak pernah terlihat.

Selenium Log IDE yang menampilkan teks peringatan yang diambil oleh storeAlert setelah pemutaran.

Konfirmasi

Konfirmasi adalah jendela pop-up yang menampilkan tombol OK dan BATAL, berbeda dengan peringatan yang hanya menampilkan tombol OK. Perintah yang dapat Anda gunakan untuk menangani konfirmasi sama dengan perintah yang digunakan pada peringatan.

  • assertConfirmation / assertNotConfirmation
  • assertConfirmationPresent / assertConfirmationNotPresent
  • tokoKonfirmasi
  • tokoKonfirmasiSekarang
  • verifikasiKonfirmasi / verifikasiTidakKonfirmasi
  • verifyConfirmationPresent / verifyConfirmationNotPresent

Selain itu, perintah-perintah ini memberitahu Selenium Tombol mana yang harus dipilih, OK atau BATAL.

  • chooseOkOnNextConfirmation / chooseOkOnNextConfirmationAndWait
  • pilihCancelOnNextConfirmation

Tempatkan perintah-perintah ini sebelum perintah yang memicu kotak konfirmasi, sehingga Selenium IDE sudah mengetahui sebelumnya opsi mana yang harus dipilih. Sekali lagi, Anda tidak akan melihat kotak konfirmasi sebenarnya selama eksekusi skrip.

Mari kita uji sebuah halaman web dengan tombol yang dikodekan untuk melaporkan apakah pengguna menekan OK atau BATAL.

Langkah 1) In Selenium IDE, atur Basis URL ke http://jsbin.com. Selengkapnya URL adalah http://jsbin.com/enifaf.

Langkah 2) Buat skrip seperti yang ditunjukkan di bawah ini. Kali ini kita akan menekan tombol OK terlebih dahulu.

Selenium Skrip IDE menempatkan chooseOkOnNextConfirmation sebelum klik yang membuka dialog.

Langkah 3) Jalankan skrip dan perhatikan bahwa Anda tidak melihat konfirmasi sebenarnya, namun halaman web tetap melaporkan tombol mana yang ditekan. Selenium IDE ditekan.

Halaman uji yang melaporkan bahwa tombol OK pada dialog konfirmasi telah ditekan.

Langkah 4) Ganti perintah chooseOkOnNextConfirmation dengan chooseCancelOnNextConfirmation dan jalankan skrip lagi. Halaman sekarang akan menampilkan pilihan yang berlawanan.

Selenium Skrip IDE diedit untuk menggunakan chooseCancelOnNextConfirmation sebagai pengganti chooseOkOnNextConfirmation.

kelipatan Windows

Jika Anda mengklik tautan yang membuka jendela terpisah, Anda harus terlebih dahulu memberikan instruksi. Selenium IDE digunakan untuk memilih jendela tersebut sebelum Anda dapat mengakses elemen-elemen di dalamnya. Pada IDE lama, Anda menggunakan judul jendela sebagai penunjuk lokasinya.

Kita menggunakan perintah selectWindow untuk beralih antar jendela.

Kita akan menggunakan tautan http://jsbin.com/ocinaj/1, yang judulnya adalah “Jendela Pertama.” Tautan “di sini” pada halaman tersebut membuka Facebook di jendela baru, setelah itu kita akan memberikan instruksi. Selenium IDE untuk melakukan hal berikut:

  • Alihkan kendali dari jendela induk ke jendela Facebook yang baru diluncurkan menggunakan perintah selectWindow dengan judul jendela sebagai penunjuk lokasi.
  • Periksa judul jendela baru tersebut.
  • Pilih kembali jendela asli menggunakan perintah selectWindow dengan target “null”.
  • Periksa judul jendela yang saat ini dipilih.

Rencana di atas diterjemahkan ke dalam rangkaian empat langkah yang ditunjukkan di sini.

Diagram peralihan dari jendela induk ke jendela baru dan kembali lagi

Langkah 1) Siapkan Dasarnya URL ke http://jsbin.com.

Langkah 2) Buat skrip seperti gambar di bawah ini.

Selenium Skrip IDE menggunakan selectWindow, pause, dan verifyTitle untuk berpindah antara dua jendela.

Kita memerlukan perintah pause untuk menunggu jendela yang baru diluncurkan selesai dimuat sebelum kita dapat membaca judulnya.

Langkah 3) Jalankan skripnya. Perhatikan bahwa Kasus cobaan berhasil, artinya kami dapat beralih antar jendela dan memverifikasi judulnya dengan sukses.

Hasil kelulusan berwarna hijau Selenium IDE setelah kedua judul jendela diverifikasi

Ingatlah selalu bahwa mengatur target selectWindow ke “null” secara otomatis memilih jendela induk — dalam hal ini jendela tempat elemen “link=here” ditemukan.

Catatan: Facebook telah mengubah judul halamannya sejak tutorial ini dibuat. Ubah judul yang diharapkan dalam skrip sesuai dengan perubahan tersebut.

modern Selenium Perintah-perintah ini setara dengan IDE (Integrated Development Environment).

The Firefox-plugin IDE dihentikan ketika Firefox beralih ke arsitektur WebExtensions, dan Chrome saat ini, Firefox Ekstensi Edge mengubah nama sebagian besar perintah Selenese menjadi bentuk yang diberi spasi. Perilakunya tidak berubah, jadi tabel di bawah ini adalah semua yang Anda butuhkan untuk membaca skrip di atas pada instalasi saat ini.

Perintah lama dalam tutorial ini terbaru Selenium Perintah IDE
menyimpan menyimpan
gema gema
simpanTeks teks toko
storeElementPresent simpan elemen ada (atau pastikan elemen ada)
assertAlert / verifyAlert assert alert / verify alert
chooseOkOnNextConfirmation Pilih OK pada konfirmasi berikutnya
pilihCancelOnNextConfirmation pilih batal pada konfirmasi berikutnya
pilihJendela (judul sebagai target) pilih jendela dengan handle=${handle}

Ada dua perbedaan yang perlu diperhatikan. Prompt, yang tidak dibahas dalam artikel sebelumnya, kini memiliki perintah tersendiri: jawab pada pertanyaan berikutnya merencanakan balasan sebelum dialog muncul, dan webdriver menjawab pada prompt yang terlihat mengetik ke dalam prompt yang sudah terbuka. Dan pergantian jendela tidak lagi bergantung pada judul halaman. Jalankan pegangan jendela toko untuk menangkap pegangan terlebih dahulu, lalu meneruskan pegangan=${peganganmu} untuk memilih jendela. Perubahan itu menghilangkan mode kegagalan yang dijelaskan dalam catatan di atas, di mana sebuah situs hanya mengganti nama halamannya dan skrip berhenti menemukan jendela. Secara resmi Selenium Situs proyek IDE menampilkan seluruh rangkaian perintah saat ini.

Pertanyaan Umum Demo Slot

Ya. ${myVariable} dan ${myvariable} mengacu pada dua variabel yang berbeda, dan mengacu pada variabel yang tidak pernah disimpan akan menghasilkan string kosong alih-alih menimbulkan kesalahan. Pertahankan konvensi penamaan yang sama di seluruh rangkaian pengujian untuk menghindari kekosongan yang tidak menimbulkan kesalahan.

Ya. Sintaks ${ } diperluas di mana saja Target atau field Value, sehingga berfungsi di dalam perintah yang terbuka, XPath, atau pemilih CSS. Begitulah cara skrip yang direkam diubah menjadi skrip yang digerakkan oleh data yang diambil sebelumnya selama eksekusi.

Selenese tidak memiliki operator matematika. Gunakan perintah eksekusi skrip dengan sedikit JavaEkspresi skrip yang membaca variabel dan mengembalikan hasilnya, kemudian simpan nilai kembalian tersebut. Ingat bahwa setiap nilai yang disimpan datang sebagai string, jadi konversikan terlebih dahulu.

Anggap saja variabel-variabel tersebut hanya berlaku untuk satu pengujian. Mengandalkan nilai yang ditetapkan oleh pengujian sebelumnya membuat rangkaian pengujian bergantung pada urutan dan sulit untuk di-debug, jadi simpan apa yang dibutuhkan oleh suatu pengujian di dalam pengujian tersebut, atau baca dari file data di awal.

Sebuah perintah memerlukan teks, bukan hanya pilihan tombol. Jalankan jawaban pada perintah berikutnya dengan balasan di bidang Nilai sebelum perintah yang membukanya, atau gunakan jawaban webdriver pada perintah yang terlihat saat dialog sudah ada di layar.

Alat pembelajaran mesin dapat mengusulkan urutan perintah dari deskripsi skenario dalam bahasa sederhana dan menyarankan locator yang lebih andal daripada yang dihasilkan oleh perekam. Perbaikan locator yang dibantu AI juga membantu, karena elemen yang diganti namanya biasanya menjadi alasan mengapa nilai yang tersimpan menjadi kosong.

Ya. Ekspor tes ke Java or PythonKemudian, biarkan Copilot memfaktorkan ulang daftar perintah datar menjadi objek halaman dan penundaan yang dapat digunakan kembali. Periksa penanganan peringatan secara manual, karena kode yang dihasilkan sering kali mengasumsikan dialog yang terlihat yang sudah ditutup oleh IDE.

Pemilihan berdasarkan judul menjadi ambigu dan jendela yang salah mungkin terpilih. Inilah mengapa IDE saat ini lebih menyukai handle: tangkap satu dengan menyimpan handle jendela tepat setelah jendela terbuka, lalu beralih dengan handle=${yourHandle}.

Ringkaslah postingan ini dengan: