Cara menggunakan Selenium IDE dengan Scripts & Perintah (Tegaskan, Verifikasi)

Daftar Isi:

Anonim

Kami akan menggunakan situs web Mercury Tours sebagai aplikasi web kami yang sedang diuji. Ini adalah sistem reservasi penerbangan online yang berisi semua elemen yang kami butuhkan untuk tutorial ini. URL-nya adalah http://demo.guru99.com/test/newtours/, dan ini akan menjadi URL Dasar kami.

Buat Naskah dengan Merekam

Sekarang mari kita buat skrip pengujian pertama kita di Selenium IDE menggunakan metode yang paling umum - dengan merekam. Setelah itu, kami akan menjalankan skrip kami menggunakan fitur pemutaran.

Langkah 1

  • Luncurkan Firefox dan Selenium IDE.
  • Ketik nilai untuk Base URL kami: http://demo.guru99.com/test/newtours/.
  • Alihkan tombol Rekam ke aktif (jika belum diaktifkan secara default).
Langkah 2

Di Firefox, navigasikan ke http://demo.guru99.com/test/newtours/. Firefox akan membawa Anda ke halaman yang mirip dengan yang ditunjukkan di bawah ini.

LANGKAH 3
  • Klik kanan pada ruang kosong mana pun di dalam halaman, seperti pada logo Mercury Tours di sudut kiri atas. Ini akan memunculkan menu konteks Selenium IDE. Catatan: Jangan klik objek atau gambar yang memiliki hyperlink
  • Pilih opsi "Tampilkan Perintah yang Tersedia".
  • Kemudian, pilih "assertTitle tepat: Selamat Datang: Tur Mercury". Ini adalah perintah yang memastikan bahwa judul halaman sudah benar.
LANGKAH 4
  • Di kotak teks "Nama Pengguna" Mercury Tours, ketik nama pengguna yang tidak valid, "invalidUNN".
  • Di kotak teks "Password", ketik password yang tidak valid, "invalidPWD".
Langkah 5
  • Klik pada tombol "Masuk". Firefox akan membawa Anda ke halaman ini.
LANGKAH 6

Matikan tombol rekam untuk berhenti merekam. Skrip Anda sekarang akan terlihat seperti yang ditunjukkan di bawah ini.

Langkah 7

Sekarang setelah kita selesai dengan skrip uji kita, kita akan menyimpannya dalam kasus uji. Di menu File, pilih "Save Test Case". Atau, Anda cukup menekan Ctrl + S.

LANGKAH 8
  • Pilih lokasi yang Anda inginkan, lalu beri nama Test Case sebagai "Invalid_login".
  • Klik tombol "Simpan".
LANGKAH 9.

Perhatikan bahwa file tersebut disimpan sebagai HTML.

LANGKAH 10.

Kembali ke Selenium IDE dan klik tombol Playback untuk menjalankan seluruh skrip. Selenium IDE harus dapat mereplikasi semuanya dengan sempurna.

Pengantar Perintah Selenium - Selenese

  • Perintah Selenese dapat memiliki maksimal dua parameter: target dan nilai.
  • Parameter tidak diperlukan sepanjang waktu. Itu tergantung pada berapa banyak perintah yang dibutuhkan.

3 Jenis Perintah

Tindakan

Ini adalah perintah yang berinteraksi langsung dengan elemen halaman.

Contoh: perintah "klik" adalah tindakan karena Anda berinteraksi langsung dengan elemen yang Anda klik.

Perintah "type" juga merupakan tindakan karena Anda memasukkan nilai ke dalam kotak teks, dan kotak teks tersebut menunjukkannya kepada Anda sebagai gantinya. Ada interaksi dua arah antara Anda dan kotak teks.

Accessors

Mereka adalah perintah yang memungkinkan Anda menyimpan nilai ke variabel.

Contoh: perintah "storeTitle" adalah aksesor karena hanya "membaca" judul halaman dan menyimpannya dalam variabel. Itu tidak berinteraksi dengan elemen apa pun di halaman.

Pernyataan

Mereka adalah perintah yang memverifikasi jika kondisi tertentu terpenuhi.

3 Jenis Pernyataan

  • Tegaskan . Saat perintah "assert" gagal, pengujian akan segera dihentikan.
  • Verifikasikan . Ketika perintah "verifikasi" gagal, Selenium IDE mencatat kegagalan ini dan melanjutkan eksekusi uji.
  • Tunggu . Sebelum melanjutkan ke perintah berikutnya, perintah "waitFor" akan menunggu kondisi tertentu menjadi benar.
    • Jika kondisi menjadi benar dalam masa tunggu, langkah tersebut berlalu.
    • Jika kondisinya tidak menjadi benar, langkah tersebut gagal. Kegagalan dicatat, dan eksekusi uji dilanjutkan ke perintah berikutnya.
    • Secara default, nilai batas waktu diatur ke 30 detik. Anda dapat mengubahnya dalam dialog Selenium IDE Options di bawah tab General.

Tegaskan vs. Verifikasi

Perintah Umum

Perintah Jumlah Parameter Deskripsi
Buka 0 - 2

Membuka halaman menggunakan URL.

click / clickAndWait 1

Klik pada elemen tertentu.

type / typeKeys 2

Mengetik urutan karakter.

verifikasiTitle / assertTitle 1

Membandingkan judul halaman yang sebenarnya dengan nilai yang diharapkan.

verifikasiTextPresent 1

Memeriksa apakah teks tertentu ditemukan di dalam halaman.

verifikasiElementPresent 1

Memeriksa keberadaan elemen tertentu.

verifikasiTable 2

Membandingkan isi tabel dengan nilai yang diharapkan.

waitForPageToLoad 1

Jeda eksekusi hingga halaman dimuat sepenuhnya.

waitForElementPresent 1

Jeda eksekusi sampai elemen yang ditentukan menjadi ada.

Buat Script Secara Manual dengan Firebug

Sekarang, kita akan membuat ulang kasus uji yang sama secara manual, dengan mengetikkan perintah. Kali ini, kita perlu menggunakan Firebug.

Langkah 1
  • Buka Firefox dan Selenium IDE.
  • Ketik URL dasar (http://demo.guru99.com/test/newtours/).
  • Tombol rekam harus OFF.
Langkah 2: Klik pada baris kosong paling atas di Editor.

Ketik "buka" di kotak teks Command dan tekan Enter.

LANGKAH 3
  • Arahkan Firefox ke URL dasar kami dan aktifkan Firebug
  • Di panel Selenium IDE Editor, pilih baris kedua (baris di bawah perintah "open") dan buat perintah kedua dengan mengetik "assertTitle" pada kotak Command.
  • Jangan ragu untuk menggunakan fitur pelengkapan otomatis.
LANGKAH 4
  • Di Firebug, luaskan tag untuk menampilkan tag .</li> <li>Klik pada nilai tag <title> (yaitu "Selamat Datang: Mercury Tours") dan tempelkan ke bidang Target di Editor.</li> </ul> </td> </tr> <tr> <td><strong>Langkah 5</strong> <ul> <li>Untuk membuat perintah ketiga, klik pada baris kosong ketiga di Editor dan masukkan "ketik" pada kotak teks Perintah.</li> <li>Di Firebug, klik tombol "Periksa".</li> </ul> </td> </tr> <tr> <td>Klik pada kotak teks Nama Pengguna. Perhatikan bahwa Firebug secara otomatis menampilkan kode HTML untuk elemen itu.</td> </tr> <tr> <td><strong>LANGKAH 6</strong> <p>Perhatikan bahwa kotak teks Nama Pengguna tidak memiliki ID, tetapi memiliki atribut NAMA. Oleh karena itu, kami akan menggunakan NAMA sebagai pencari lokasi. Salin nilai NAME dan tempelkan ke bidang Target di Selenium IDE.</p> <p>Masih di kotak teks Target, awalan "userName" dengan "name =", yang menunjukkan bahwa Selenium IDE harus menargetkan elemen yang atribut NAMA-nya adalah "userName."</p> <p>Ketik "invalidUN" di kotak teks Value dari Selenium IDE. Skrip pengujian Anda sekarang akan terlihat seperti gambar di bawah ini. Kami selesai dengan perintah ketiga. Catatan: Daripada invalidUN, Anda bisa memasukkan string teks lainnya. Tapi Selenium IDE peka huruf besar / kecil, dan Anda mengetikkan nilai / atribut persis seperti dalam aplikasi.</p> </td> </tr> <tr> <td><strong>Langkah 7</strong> <ul> <li>Untuk membuat perintah keempat, masukkan "type" pada kotak teks Command.</li> <li>Sekali lagi, gunakan tombol "Inspeksi" Firebug untuk mendapatkan pencari lokasi untuk kotak teks "Kata Sandi".</li> </ul> <ul> <li> <p>Tempel atribut NAME ("password") ke dalam kolom Target dan awali dengan "name ="</p> </li> <li> <p>Ketik "invalidPW" di kolom Value di Selenium IDE. Skrip pengujian Anda sekarang akan terlihat seperti gambar di bawah ini.</p> </li> </ul> </td> </tr> <tr> <td><strong>LANGKAH 8</strong> <ul> <li>Untuk perintah kelima, ketik "clickAndWait" pada kotak teks Command di Selenium IDE.</li> <li>Gunakan tombol "Inspeksi" Firebug untuk mendapatkan pencari lokasi tombol "Masuk".</li> </ul> <ul> <li>Tempel nilai atribut NAME ("login") ke kotak teks Target dan awali dengan "name =".</li> <li>Skrip pengujian Anda sekarang akan terlihat seperti gambar di bawah ini.</li> </ul> </td> </tr> </tbody> </table> <p><strong>Langkah 9:</strong> Simpan kasus uji dengan cara yang sama seperti yang kita lakukan di bagian sebelumnya.</p> <a id="menu-6"></a> <h2>Menggunakan Tombol Temukan</h2> <p><strong>Tombol Find di Selenium IDE digunakan untuk memverifikasi apakah yang kita masukkan ke kotak teks Target memang elemen UI yang benar.</strong></p> <p>Mari kita gunakan kasus uji Invalid_login yang kita buat di bagian sebelumnya. Klik pada perintah apa saja dengan entri Target, katakanlah, perintah ketiga.</p> <p>Klik pada tombol Temukan. Perhatikan bahwa kotak teks Nama Pengguna di dalam halaman Mercury Tours menjadi disorot sebentar.</p> <p>Ini menunjukkan bahwa Selenium IDE mampu mendeteksi dan mengakses elemen yang diharapkan dengan benar. Jika tombol Find menyorot elemen yang berbeda atau tidak ada elemen sama sekali, maka pasti ada yang salah dengan skrip Anda.</p> <a id="menu-7"></a> <h2>Jalankan Perintah</h2> <p><strong>Ini memungkinkan Anda untuk menjalankan perintah tunggal apa pun tanpa menjalankan seluruh kasus uji</strong> . Cukup klik pada baris yang ingin Anda jalankan dan kemudian klik "Actions> Execute this command" dari menu bar atau cukup tekan "X" pada keyboard Anda.</p> <p><strong>Langkah 1.</strong> Pastikan browser Anda ada di beranda Mercury Tours. Klik pada perintah yang ingin Anda jalankan. Dalam contoh ini, klik baris "type | userName | invalidUN".</p> <p><strong>Langkah 2.</strong> Tekan "X" pada keyboard Anda.</p> <p><strong>Langkah 3.</strong> Perhatikan bahwa kotak teks untuk nama pengguna diisi dengan teks "invalidUN"</p> <p><strong>Menjalankan perintah dengan cara ini sangat bergantung pada halaman yang sedang ditampilkan Firefox</strong> . Artinya jika Anda mencoba contoh di atas dengan menampilkan beranda Google dan bukan Mercury Tours ', maka langkah Anda akan gagal karena tidak ada kotak teks dengan atribut "nama pengguna" di dalam beranda Google.</p> <a id="menu-8"></a> <h2>Titik awal</h2> <p><strong>Titik awal adalah indikator yang memberi tahu Selenium IDE baris mana yang akan memulai eksekusi</strong> . <strong>Tombol pintasnya adalah "S".</strong></p> <p>Pada contoh di atas, pemutaran akan dimulai pada baris ketiga (ketik | sandi | invalidPW). <strong>Anda hanya dapat memiliki satu titik awal dalam satu skrip pengujian.</strong></p> <p>Titik awalnya mirip dengan Execute Command karena bergantung pada halaman yang sedang ditampilkan. Titik awal akan gagal jika Anda berada di halaman yang salah.</p> <a id="menu-9"></a> <h2>Breakpoints</h2> <p>Breakpoints adalah indikator yang memberi tahu Selenium IDE tempat untuk menjeda pengujian secara otomatis. <strong>Tombol pintasnya adalah "B".</strong></p> <p>Sorotan kuning berarti langkah saat ini tertunda. Ini membuktikan bahwa Selenium IDE telah menghentikan sementara eksekusi pada langkah tersebut. <strong>Anda dapat memiliki beberapa breakpoint dalam satu kasus pengujian.</strong></p> <a id="menu-10"></a> <h2>Langkah</h2> <p>Ini memungkinkan Anda untuk menjalankan perintah yang berhasil satu per satu setelah menghentikan kasus uji. Mari kita gunakan skenario di bagian sebelumnya "Breakpoints."</p> <table> <tbody> <tr> <td width="50%"> </td> <td> <p><strong>Sebelum mengklik "Langkah".</strong></p> <p>Kasus uji berhenti di baris "clickAndWait | login".</p> </td> </tr> <tr> <td width="50%"> </td> <td> <p><strong>Setelah mengklik "Langkah".</strong></p> <p>Baris "clickAndWait | login" dijalankan dan berhenti untuk perintah berikutnya (verifikasiTitle | Sign-on: Mercury Tours).</p> <p>Perhatikan bahwa baris berikutnya dijeda meskipun tidak ada breakpoint di sana. Ini adalah tujuan utama fitur Langkah - fitur ini menjalankan perintah berikutnya satu per satu untuk memberi Anda lebih banyak waktu untuk memeriksa hasil setelah setiap langkah.</p> </td> </tr> </tbody> </table> <a id="menu-11"></a> <h2>Hal Penting untuk Dicatat Saat Menggunakan Format Lain dalam Tampilan Sumber</h2> <p><strong>Selenium IDE hanya berfungsi dengan baik dengan HTML - format lain masih dalam mode eksperimental</strong> . Hal ini <strong>tidak dianjurkan</strong> untuk membuat atau mengedit tes menggunakan format lain di Sumber View karena masih banyak pekerjaan yang diperlukan untuk membuatnya stabil. Di bawah ini adalah bug yang diketahui pada versi 1.9.1.</p> <ul> <li>Anda tidak akan dapat melakukan pemutaran atau beralih kembali ke Tampilan Tabel kecuali jika Anda kembali ke HTML.</li> <li>Satu-satunya cara untuk menambahkan perintah secara aman pada kode sumber adalah dengan merekamnya.</li> <li>Saat Anda mengubah kode sumber secara manual, semuanya akan hilang saat Anda beralih ke format lain.</li> <li>Meskipun Anda dapat menyimpan kasus pengujian Anda saat berada di Source View, Selenium IDE tidak akan dapat membukanya.</li> </ul> <p><strong>Cara yang disarankan untuk mengonversi pengujian Selenese adalah dengan menggunakan opsi "Ekspor Kasus Uji Sebagai…" di bawah menu Berkas, dan bukan melalui Tampilan Sumber.</strong></p> <a id="menu-12"></a> <h2>Ringkasan</h2> <ul> <li>Skrip pengujian dapat dibuat dengan merekam atau mengetik perintah dan parameter secara manual.</li> <li>Saat membuat skrip secara manual, Firebug digunakan untuk mendapatkan pencari lokasi.</li> <li>Tombol Find digunakan untuk memeriksa apakah perintah dapat mengakses elemen yang benar.</li> <li>Tampilan Tabel menampilkan skrip uji dalam bentuk tabel sementara Tampilan Sumber menampilkannya dalam format HTML.</li> <li>Mengubah Tampilan Sumber ke format non-HTML masih bersifat eksperimental.</li> <li>Jangan gunakan Tampilan Sumber dalam membuat pengujian dalam format lain. Gunakan fitur Ekspor sebagai gantinya.</li> <li>Parameter tidak diperlukan sepanjang waktu. Itu tergantung pada perintah.</li> <li>Ada tiga jenis perintah:</li> <ul> <li>Tindakan - berinteraksi langsung dengan elemen halaman</li> <li>Accessors - "membaca" properti elemen dan menyimpannya dalam variabel</li> <li>Pernyataan - membandingkan nilai aktual dengan nilai yang diharapkan</li> </ul> <li>Pernyataan memiliki tiga jenis:</li> <ul> <li>Tegaskan - jika gagal, langkah yang berhasil tidak lagi dijalankan</li> <li>Verifikasi - jika gagal, langkah-langkah yang berhasil masih dijalankan.</li> <li>WaitFor - lolos jika kondisi yang ditentukan menjadi true dalam periode waktu tunggu; jika tidak, itu akan gagal</li> </ul> <li>Perintah yang paling umum adalah:</li> <ul> <li>Buka</li> <li>click / clickAndWait</li> <li>type / typeKeys</li> <li>verifikasiTitle / assertTitle</li> <li>verifikasiTextPresent</li> <li>verifikasiElementPresent</li> <li>verifikasiTable</li> <li>waitForPageToLoad</li> <li>waitForElementPresent</li> </ul> </ul> </div> </article> <div id="container-5533149ee6411a5f99b370c693e87966"></div> </div> </div> </div> </div> </div> <aside class="col-lg-4 sidebar sidebar--right"> <div class="widget widget-popular-posts"> <h2 class="widget-title">Pesan Populer</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8223934-sap-hana-tutorial-create-trigger" title="Tutorial SAP HANA: Buat Pemicu" rel="bookmark"><img src="https://cdn.css-code.org/5777137/sap_hana_tutorial_create_trigger.png.webp" loading="lazy" alt="Tutorial SAP HANA: Buat Pemicu" title="Tutorial SAP HANA: Buat Pemicu" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8223934-sap-hana-tutorial-create-trigger" title="Tutorial SAP HANA: Buat Pemicu" rel="bookmark">Tutorial SAP HANA: Buat Pemicu 2024</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8223935-sap-hana-sql-stored-procedure-tutorial" title="Tutorial Prosedur Tersimpan SAP HANA SQL" rel="bookmark"><img src="https://cdn.css-code.org/4310727/sap_hana_sql_stored_procedure_tutorial.png.webp" loading="lazy" alt="Tutorial Prosedur Tersimpan SAP HANA SQL" title="Tutorial Prosedur Tersimpan SAP HANA SQL" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8223935-sap-hana-sql-stored-procedure-tutorial" title="Tutorial Prosedur Tersimpan SAP HANA SQL" rel="bookmark">Tutorial Prosedur Tersimpan SAP HANA SQL 2024</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8223936-sap-hana-sql-data-profiling-learn-in-5-minutes" title="Profil DATA SAP HANA SQL: Belajar dalam 5 Menit" rel="bookmark"><img src="https://cdn.css-code.org/1916816/sap_hana_sql_data_profiling_learn_in_5_minutes.png.webp" loading="lazy" alt="Profil DATA SAP HANA SQL: Belajar dalam 5 Menit" title="Profil DATA SAP HANA SQL: Belajar dalam 5 Menit" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8223936-sap-hana-sql-data-profiling-learn-in-5-minutes" title="Profil DATA SAP HANA SQL: Belajar dalam 5 Menit" rel="bookmark">Profil DATA SAP HANA SQL: Belajar dalam 5 Menit 2024</a></h3> </div> </div> </li> </ul> </div> <div class="widget widget-popular-posts"> <h2 class="widget-title">ulasan terbaik untuk bulan</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225164-type-and-isinstance-in-python-with-examples" title="Type () dan isinstance () dengan Python dengan Contoh" rel="bookmark">Type () dan isinstance () dengan Python dengan Contoh</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225165-python-new-line-how-to-print-without-newline-in-python" title="Python New Line: Cara Mencetak TANPA Newline dengan Python" rel="bookmark">Python New Line: Cara Mencetak TANPA Newline dengan Python</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225166-python-copy-file-using-shutil-copy-shutil-copystat" title="File COPY Python menggunakan shutil.copy (), shutil.copystat ()" rel="bookmark">File COPY Python menggunakan shutil.copy (), shutil.copystat ()</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225167-python-check-if-file-or-directory-exists" title="Python Periksa Jika File atau Direktori Ada" rel="bookmark">Python Periksa Jika File atau Direktori Ada</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225168-python-file-handling-how-to-create-open-append-read-write" title="Penanganan File Python: Cara Membuat, Membuka, Menambahkan, Membaca, Menulis" rel="bookmark">Penanganan File Python: Cara Membuat, Membuka, Menambahkan, Membaca, Menulis</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225169-python-rename-file-and-directory-using-os-rename" title="Python Ganti Nama File dan Direktori menggunakan os.rename ()" rel="bookmark">Python Ganti Nama File dan Direktori menggunakan os.rename ()</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225170-python-zip-file-with-example" title="File ZIP Python dengan Contoh" rel="bookmark">File ZIP Python dengan Contoh</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225171-python-exception-handling-try-catch-finally" title="Penanganan Pengecualian Python: Coba, Tangkap, Akhirnya" rel="bookmark">Penanganan Pengecualian Python: Coba, Tangkap, Akhirnya</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225172-reading-and-writing-csv-files-in-python-using-csv-module-and-pandas" title="Membaca dan Menulis File CSV dengan Python menggunakan Modul CSV & Panda" rel="bookmark">Membaca dan Menulis File CSV dengan Python menggunakan Modul CSV & Panda</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225173-python-with-mysql-connect-create-database-table-insert-examples" title="Python dengan MySQL: Hubungkan, Buat Database, Tabel, Sisipkan (Contoh)" rel="bookmark">Python dengan MySQL: Hubungkan, Buat Database, Tabel, Sisipkan (Contoh)</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225174-python-json-encodedump-decodeload-json-data-and-file-example" title="Python JSON: Enkode (dump), Dekode (muat) json Data & File (Contoh)" rel="bookmark">Python JSON: Enkode (dump), Dekode (muat) json Data & File (Contoh)</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225175-pyunit-tutorial-python-unit-testing-framework-with-example" title="Tutorial PyUnit: Kerangka Pengujian Unit Python (dengan Contoh)" rel="bookmark">Tutorial PyUnit: Kerangka Pengujian Unit Python (dengan Contoh)</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225176-python-matrix-transpose-multiplication-numpy-arrays-examples" title="Python Matrix: Contoh Transpose, Perkalian, NumPy Array" rel="bookmark">Python Matrix: Contoh Transpose, Perkalian, NumPy Array</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225177-facebook-login-using-python-fb-login-example" title="Login Facebook menggunakan Python: Contoh Login FB" rel="bookmark">Login Facebook menggunakan Python: Contoh Login FB</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225179-python-vs-php-whats-the-difference" title="Python Vs PHP: Apa Bedanya?" rel="bookmark">Python Vs PHP: Apa Bedanya?</a></h3> </div> </div> </li> </ul> </div> <div id="container-5533149ee6411a5f99b370c693e87966"></div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Top Artikel</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8003211-035-desktop-hover-states" title="# 035 - Status Hover Desktop - Trik CSS" rel="bookmark"><img src="https://cdn.css-code.org/8436269/035_-_desktop_hover_states_css-tricks.png.webp" loading="lazy" alt="# 035 - Status Hover Desktop - Trik CSS" title="# 035 - Status Hover Desktop - Trik CSS" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8003211-035-desktop-hover-states" title="# 035 - Status Hover Desktop - Trik CSS" rel="bookmark"># 035 - Status Hover Desktop - Trik CSS 2024</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8003212-037-color-manipulation" title="# 037 - Manipulasi Warna - Trik CSS" rel="bookmark"><img src="https://cdn.css-code.org/2449559/037_-_color_manipulation_css-tricks.png.webp" loading="lazy" alt="# 037 - Manipulasi Warna - Trik CSS" title="# 037 - Manipulasi Warna - Trik CSS" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8003212-037-color-manipulation" title="# 037 - Manipulasi Warna - Trik CSS" rel="bookmark"># 037 - Manipulasi Warna - Trik CSS 2024</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8003213-033-media-queries-in-javascript" title="# 033 - Kueri Media di JavaScript - Trik CSS" rel="bookmark"><img src="https://cdn.css-code.org/6871228/033_-_media_queries_in_javascript_css-tricks.png.webp" loading="lazy" alt="# 033 - Kueri Media di JavaScript - Trik CSS" title="# 033 - Kueri Media di JavaScript - Trik CSS" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8003213-033-media-queries-in-javascript" title="# 033 - Kueri Media di JavaScript - Trik CSS" rel="bookmark"># 033 - Kueri Media di JavaScript - Trik CSS 2024</a></h3> </div> </div> </li> </ul> </div> </aside> </div> </div> <footer class="footer footer--dark"> <div class="container"> <div class="footer__widgets"> <div class="row"> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Pesan Populer</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003409-130-styling-the-article-archives-page" title="# 130: Menata Halaman Arsip Artikel - Trik CSS" rel="bookmark"># 130: Menata Halaman Arsip Artikel - Trik CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003410-131-building-more-homepage-modules" title="# 131: Membangun Lebih Banyak Modul Beranda - Trik CSS" rel="bookmark"># 131: Membangun Lebih Banyak Modul Beranda - Trik CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003411-132-intro-to-the-forums" title="# 132: Pengenalan ke Forum - Trik CSS" rel="bookmark"># 132: Pengenalan ke Forum - Trik CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003412-133-forums-wrangling-part-1" title="# 133: Pertengkaran Forum, Bagian 1 - Trik CSS" rel="bookmark"># 133: Pertengkaran Forum, Bagian 1 - Trik CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003414-136-understanding-vanilla-forums-theme-overrides" title="# 136: Memahami Penimpaan Tema Forum Vanilla - Trik CSS" rel="bookmark"># 136: Memahami Penimpaan Tema Forum Vanilla - Trik CSS</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Pilihan Editor</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222671-conformance-testing-compliance-testing-complete-guide" title="Uji Kesesuaian (Uji Kepatuhan) - Panduan Lengkap" rel="bookmark">Uji Kesesuaian (Uji Kepatuhan) - Panduan Lengkap</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222672-what-is-loop-testing-methodology-example" title="Apa itu Pengujian Loop? Metodologi, Contoh" rel="bookmark">Apa itu Pengujian Loop? Metodologi, Contoh</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222673-what-is-dynamic-testing-types-techniques-and-example" title="Apa itu Pengujian Dinamis? Jenis, Teknik & Contoh" rel="bookmark">Apa itu Pengujian Dinamis? Jenis, Teknik & Contoh</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222674-what-is-component-testing-techniques-example-test-cases" title="Apa itu Pengujian Komponen? Teknik, Contoh Kasus Uji" rel="bookmark">Apa itu Pengujian Komponen? Teknik, Contoh Kasus Uji</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222675-what-is-parallel-testing-definition-approach-example" title="Apa itu Pengujian Paralel? Definisi, Pendekatan, Contoh" rel="bookmark">Apa itu Pengujian Paralel? Definisi, Pendekatan, Contoh</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Top Artikel</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8226453-top-40-elasticsearch-interview-questions-and-answers" title="40 Pertanyaan dan Jawaban Wawancara ElasticSearch Teratas" rel="bookmark">40 Pertanyaan dan Jawaban Wawancara ElasticSearch Teratas</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8226454-top-15-devops-testing-tools-in-2021" title="15 Alat Pengujian DevOps Teratas pada tahun 2021" rel="bookmark">15 Alat Pengujian DevOps Teratas pada tahun 2021</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8226455-top-19-ansible-interview-questions-and-answers" title="19 Pertanyaan dan Jawaban Wawancara yang Mungkin" rel="bookmark">19 Pertanyaan dan Jawaban Wawancara yang Mungkin</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8226456-top-13-servicenow-interview-questions-and-answers" title="13 Pertanyaan dan Jawaban Wawancara ServiceNow Teratas" rel="bookmark">13 Pertanyaan dan Jawaban Wawancara ServiceNow Teratas</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8226457-best-8-ansible-alternatives-in-2021" title="8 Alternatif Terbaik pada tahun 2021" rel="bookmark">8 Alternatif Terbaik pada tahun 2021</a></h3> </div> </div> </li> </ul> </div> </div> </div> <p>© Copyright id.css-code.org, 2024 Desember | <a href="https://id.css-code.org/about-site" title="Tentang situs">Tentang situs</a> | <a href="https://id.css-code.org/contacts" title="Kontak">Kontak</a> | <a href="https://id.css-code.org/privacy-policy" title="Rahasia pribadi">Rahasia pribadi</a>. </p> </div> </div> </footer> <link href="https://css-code.org/template/css/style.min.css" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" /> </body> </html>