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="/8222538-how-to-download-and-install-junit-in-eclipse" title="Cara Mengunduh dan Menginstal JUnit di Eclipse" rel="bookmark"><img src="https://cdn.css-code.org/7785824/how_to_download_and_install_junit_in_eclipse.png.webp" loading="lazy" alt="Cara Mengunduh dan Menginstal JUnit di Eclipse" title="Cara Mengunduh dan Menginstal JUnit di Eclipse" 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="/8222538-how-to-download-and-install-junit-in-eclipse" title="Cara Mengunduh dan Menginstal JUnit di Eclipse" rel="bookmark">Cara Mengunduh dan Menginstal JUnit di Eclipse 2025</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="/8222539-testing-insurance-domain-applications-with-sample-test-cases" title="Menguji Aplikasi Domain Asuransi dengan Contoh Kasus Uji" rel="bookmark"><img src="https://cdn.css-code.org/5064450/testing_insurance_domain_applications_with_sample_test_cases.png.webp" loading="lazy" alt="Menguji Aplikasi Domain Asuransi dengan Contoh Kasus Uji" title="Menguji Aplikasi Domain Asuransi dengan Contoh Kasus Uji" 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="/8222539-testing-insurance-domain-applications-with-sample-test-cases" title="Menguji Aplikasi Domain Asuransi dengan Contoh Kasus Uji" rel="bookmark">Menguji Aplikasi Domain Asuransi dengan Contoh Kasus Uji 2025</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="/8222540-junit-test-cases-before-beforeclass-annotation" title="Kasus Uji JUnit @Before @BeforeClass Annotation" rel="bookmark"><img src="https://cdn.css-code.org/3587056/junit_test_cases_before_beforeclass_annotation.png.webp" loading="lazy" alt="Kasus Uji JUnit @Before @BeforeClass Annotation" title="Kasus Uji JUnit @Before @BeforeClass Annotation" 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="/8222540-junit-test-cases-before-beforeclass-annotation" title="Kasus Uji JUnit @Before @BeforeClass Annotation" rel="bookmark">Kasus Uji JUnit @Before @BeforeClass Annotation 2025</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="/8226160-what-is-full-stack-developer-key-skills-required-java-python" title="Apa itu Full Stack Developer? Keterampilan Utama Diperlukan Java, Python" rel="bookmark">Apa itu Full Stack Developer? Keterampilan Utama Diperlukan Java, 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="/8226170-capability-maturity-model-cmm-and-its-levels-in-software-engineering" title="Capability Maturity Model (CMM) & Itu Tingkat dalam Rekayasa Perangkat Lunak" rel="bookmark">Capability Maturity Model (CMM) & Itu Tingkat dalam Rekayasa Perangkat Lunak</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="/8226171-n-tiermulti-tier-3-tier-2-tier-architecture-with-example" title="N Tier (Multi-Tier), 3-Tier, 2-Tier Arsitektur dengan CONTOH" rel="bookmark">N Tier (Multi-Tier), 3-Tier, 2-Tier Arsitektur 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="/8226180-ux-vs-ui-10-most-important-differences-you-must-know" title="UX vs UI: 10 Perbedaan Paling Penting yang Harus Anda Ketahui!" rel="bookmark">UX vs UI: 10 Perbedaan Paling Penting yang Harus Anda Ketahui!</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="/8226181-difference-between-local-and-global-variable" title="Perbedaan antara Variabel Lokal dan Global" rel="bookmark">Perbedaan antara Variabel Lokal dan Global</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="/8226182-ar-vs-vr-difference-between-augmented-reality-virtual-reality" title="AR Vs VR: Perbedaan Antara Augmented Reality, Virtual Reality" rel="bookmark">AR Vs VR: Perbedaan Antara Augmented Reality, Virtual Reality</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="/8226183-32-bit-vs-64-bit-key-differences" title="32 bit vs 64 bit: Perbedaan Utama" rel="bookmark">32 bit vs 64 bit: Perbedaan Utama</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="/8226184-stack-vs-heap-know-the-difference" title="Stack vs Heap: Ketahui Perbedaannya" rel="bookmark">Stack vs Heap: Ketahui Perbedaannya</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="/8226185-cisc-vs-risc-difference-between-architectures-instruction-set" title="CISC vs RISC: Perbedaan Antara Arsitektur, Set Instruksi" rel="bookmark">CISC vs RISC: Perbedaan Antara Arsitektur, Set Instruksi</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="/8226186-computer-science-vs-software-engineering-key-differences" title="Ilmu Komputer Vs. Rekayasa Perangkat Lunak: Perbedaan Utama" rel="bookmark">Ilmu Komputer Vs. Rekayasa Perangkat Lunak: Perbedaan Utama</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="/8226187-ssd-vs-hdd-whats-the-difference-which-one-to-choose" title="SSD Vs HDD: Apa Bedanya? - Yang Mana yang Harus Dipilih?" rel="bookmark">SSD Vs HDD: Apa Bedanya? - Yang Mana yang Harus Dipilih?</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="/8226188-fat32-vs-exfat-vs-ntfs-whats-the-difference" title="FAT32 vs exFAT vs NTFS: Apa Perbedaannya?" rel="bookmark">FAT32 vs exFAT vs NTFS: Apa Perbedaannya?</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="/8226189-independent-variables-vs-dependent-variables-key-differences" title="Variabel Independen vs Variabel Dependen: Perbedaan Kunci" rel="bookmark">Variabel Independen vs Variabel Dependen: Perbedaan Kunci</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="/8226190-difference-between-class-and-object" title="Perbedaan antara Kelas dan Objek" rel="bookmark">Perbedaan antara Kelas dan Objek</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="/8226191-15-best-code-review-tools-for-code-quality-analysis" title="15 Alat Review Kode TERBAIK untuk Analisis Kualitas Kode" rel="bookmark">15 Alat Review Kode TERBAIK untuk Analisis Kualitas Kode</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="/8003846-insert-element-between-other-elements" title="Sisipkan Elemen Antar Elemen Lainnya - Trik CSS" rel="bookmark"><img src="https://cdn.css-code.org/7964443/insert_element_between_other_elements_css-tricks.png.webp" loading="lazy" alt="Sisipkan Elemen Antar Elemen Lainnya - Trik CSS" title="Sisipkan Elemen Antar Elemen Lainnya - 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="/8003846-insert-element-between-other-elements" title="Sisipkan Elemen Antar Elemen Lainnya - Trik CSS" rel="bookmark">Sisipkan Elemen Antar Elemen Lainnya - Trik CSS 2025</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="/8003847-jquery-json-getting-with-error-catching" title="JQuery JSON mendapatkan dengan error catching - Trik CSS" rel="bookmark"><img src="https://cdn.css-code.org/1398450/jquery_json_getting_with_error_catching_css-tricks.png.webp" loading="lazy" alt="JQuery JSON mendapatkan dengan error catching - Trik CSS" title="JQuery JSON mendapatkan dengan error catching - 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="/8003847-jquery-json-getting-with-error-catching" title="JQuery JSON mendapatkan dengan error catching - Trik CSS" rel="bookmark">JQuery JSON mendapatkan dengan error catching - Trik CSS 2025</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="/8003848-jquery-plugin-template" title="Template Plugin jQuery - Trik CSS" rel="bookmark"><img src="https://cdn.css-code.org/4083601/jquery_plugin_template_css-tricks.png.webp" loading="lazy" alt="Template Plugin jQuery - Trik CSS" title="Template Plugin jQuery - 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="/8003848-jquery-plugin-template" title="Template Plugin jQuery - Trik CSS" rel="bookmark">Template Plugin jQuery - Trik CSS 2025</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="/8224246-how-to-select-or-reject-a-quotation-sap-me47" title="Cara Memilih atau Menolak Kutipan: SAP ME47" rel="bookmark">Cara Memilih atau Menolak Kutipan: SAP ME47</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224247-material-master-views-in-sap-the-ultimate-guide" title="Tampilan Master Material di SAP: Panduan Utama" rel="bookmark">Tampilan Master Material di SAP: Panduan Utama</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224248-me22n-how-to-change-a-purchase-order-in-sap" title="ME22N: Cara Mengubah Pesanan Pembelian di SAP" rel="bookmark">ME22N: Cara Mengubah Pesanan Pembelian di SAP</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224253-how-to-create-purchase-order-with-reference-me58-me21n-in-sap" title="Cara Membuat Pesanan Pembelian dengan Referensi ME58 - ME21N di SAP" rel="bookmark">Cara Membuat Pesanan Pembelian dengan Referensi ME58 - ME21N di SAP</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224267-how-to-post-goods-receipt-sap-migo" title="Cara Mengirim Tanda Terima Barang: SAP MIGO" rel="bookmark">Cara Mengirim Tanda Terima Barang: SAP MIGO</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="/8003891-window-load-event-with-minimum-delay" title="Peristiwa pemuatan jendela dengan penundaan minimum - Trik CSS" rel="bookmark">Peristiwa pemuatan jendela dengan penundaan minimum - Trik CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003893-underline-individual-words" title="Garis Bawah Kata Individual - Trik CSS" rel="bookmark">Garis Bawah Kata Individual - Trik CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003894-working-with-attributes" title="Bekerja dengan Atribut - Trik CSS" rel="bookmark">Bekerja dengan Atribut - Trik CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003895-append-non-breaking-space-between-last-two-words" title="Tambahkan Spasi Non-Breaking Antara Dua Kata Terakhir - Trik CSS" rel="bookmark">Tambahkan Spasi Non-Breaking Antara Dua Kata Terakhir - Trik CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003896-adjust-server-time" title="Sesuaikan Waktu Server - Trik CSS" rel="bookmark">Sesuaikan Waktu Server - Trik CSS</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="/8223819-sap-crm-pricing-and-billing-elements-procedure-type-web-ui" title="Harga SAP CRM & Penagihan: Elemen, Prosedur, Jenis, UI Web" rel="bookmark">Harga SAP CRM & Penagihan: Elemen, Prosedur, Jenis, UI Web</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8223820-residual-method-incoming-and-outgoing-partial-payments-posting-in-sap" title="Metode Sisa: Masuk & Posting Pembayaran Parsial Keluar di SAP" rel="bookmark">Metode Sisa: Masuk & Posting Pembayaran Parsial Keluar di SAP</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8223821-top-17-crystal-reports-interview-questions-and-answers" title="17 Pertanyaan Wawancara Crystal Reports & Jawaban" rel="bookmark">17 Pertanyaan Wawancara Crystal Reports & Jawaban</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8223823-fb60-in-sap-how-to-post-a-purchase-invoice" title="FB60 di SAP: Cara memposting Faktur Pembelian" rel="bookmark">FB60 di SAP: Cara memposting Faktur Pembelian</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8223824-how-to-create-a-company-in-sap" title="Cara Membuat Perusahaan di SAP" rel="bookmark">Cara Membuat Perusahaan di SAP</a></h3> </div> </div> </li> </ul> </div> </div> </div> <p>© Copyright id.css-code.org, 2025 Juni | <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>