Cara menggunakan Selenium IDE dengan Skrip & Perintah (Tegaskan, Sahkan)

Isi kandungan:

Anonim

Kami akan menggunakan laman web Mercury Tours sebagai aplikasi web kami yang sedang diuji. Ini adalah sistem tempahan penerbangan dalam talian yang mengandungi semua elemen yang kami perlukan untuk tutorial ini. URL-nya adalah http://demo.guru99.com/test/newtours/, dan ini akan menjadi URL Pangkalan kami.

Buat Skrip dengan Merakam

Mari kita buat skrip ujian pertama kita di Selenium IDE menggunakan kaedah yang paling biasa - dengan merakam. Selepas itu, kami akan melaksanakan skrip kami menggunakan ciri main balik.

Langkah 1

  • Lancarkan Firefox dan Selenium IDE.
  • Taipkan nilai untuk URL Pangkalan kami: http://demo.guru99.com/test/newtours/.
  • Hidupkan butang Rekod dihidupkan (jika belum diaktifkan secara lalai).
Langkah 2

Di Firefox, arahkan ke http://demo.guru99.com/test/newtours/. Firefox akan membawa anda ke halaman yang serupa dengan yang ditunjukkan di bawah.

Langkah 3
  • Klik kanan pada mana-mana ruang kosong di halaman, seperti pada logo Mercury Tours di sudut kiri atas. Ini akan memaparkan menu konteks Selenium IDE. Catatan: Jangan klik pada objek atau gambar yang berangkai
  • Pilih pilihan "Tunjukkan Perintah Yang Ada".
  • Kemudian, pilih "assertTitle tepat: Selamat Datang: Mercury Tours." Ini adalah arahan yang memastikan tajuk halaman betul.
Langkah 4
  • Dalam kotak teks "Nama Pengguna" Mercury Tours, ketik nama pengguna yang tidak sah, "tidak sahUNN".
  • Dalam kotak teks "Kata Laluan", ketik kata laluan yang tidak sah, "tidak sahPWD".
Langkah 5
  • Klik pada butang "Log Masuk". Firefox harus membawa anda ke halaman ini.
Langkah 6

Togol butang rakam untuk berhenti merakam. Skrip anda kini kelihatan seperti yang ditunjukkan di bawah.

Langkah 7

Sekarang setelah kita selesai dengan skrip ujian kita, kita akan menyimpannya dalam kes ujian. Dalam menu Fail, pilih "Simpan Uji Kes". Sebagai alternatif, anda hanya boleh menekan Ctrl + S.

Langkah 8
  • Pilih lokasi yang anda inginkan, dan kemudian beri nama Test Case sebagai "Invalid_login".
  • Klik butang "Simpan".
Langkah 9.

Perhatikan bahawa fail tersebut disimpan sebagai HTML.

Langkah 10.

Kembali ke Selenium IDE dan klik butang Main semula untuk melaksanakan keseluruhan skrip. Selenium IDE harus dapat meniru semuanya dengan sempurna.

Pengenalan Perintah Selenium - Selenese

  • Perintah Selenese dapat memiliki maksimal dua parameter: target dan nilai.
  • Parameter tidak diperlukan sepanjang masa. Ia bergantung pada berapa banyak arahan yang diperlukan.

3 Jenis Perintah

Tindakan

Ini adalah arahan yang berinteraksi secara langsung dengan elemen halaman.

Contoh: perintah "klik" adalah tindakan kerana anda berinteraksi secara langsung dengan elemen yang anda klik.

Perintah "type" juga merupakan tindakan kerana anda memasukkan nilai ke dalam kotak teks, dan kotak teks menunjukkannya kepada anda sebagai balasan. Terdapat interaksi dua hala antara anda dan kotak teks.

Aksesori

Ini adalah perintah yang membolehkan anda menyimpan nilai ke pemboleh ubah.

Contoh: perintah "storeTitle" adalah aksesor kerana hanya "membaca" tajuk halaman dan menyimpannya dalam pemboleh ubah. Ia tidak berinteraksi dengan unsur apa pun di halaman.

Ketegasan

Mereka adalah perintah yang mengesahkan jika syarat tertentu dipenuhi.

3 Jenis Teguran

  • Tegaskan . Apabila arahan "menegaskan" gagal, ujian dihentikan serta-merta.
  • Sahkan . Apabila arahan "verifikasi" gagal, Selenium IDE mencatat kegagalan ini dan dilanjutkan dengan pelaksanaan ujian.
  • Tunggu . Sebelum meneruskan ke perintah seterusnya, perintah "waitFor" akan terlebih dahulu menunggu keadaan tertentu menjadi kenyataan.
    • Sekiranya keadaan menjadi kenyataan dalam tempoh menunggu, langkahnya akan berlalu.
    • Sekiranya keadaan tidak menjadi kenyataan, langkahnya gagal. Kegagalan dicatat, dan pelaksanaan ujian diteruskan ke perintah berikutnya.
    • Secara lalai, nilai timeout ditetapkan pada 30 saat. Anda boleh mengubahnya dalam dialog Selenium IDE Options di bawah tab General.

Tegaskan vs Sahkan

Perintah Biasa

Perintah Bilangan Parameter Penerangan
buka 0 - 2

Membuka halaman menggunakan URL.

klik / klikAndWait 1

Klik pada elemen yang ditentukan.

type / typeKeys 2

Menaip urutan watak.

verifikasiTitle / assertTitle 1

Membandingkan tajuk halaman sebenar dengan nilai yang diharapkan.

mengesahkanTeksPresent 1

Memeriksa apakah teks tertentu dijumpai di dalam halaman.

sahkanElementPresent 1

Memeriksa kehadiran unsur tertentu.

mengesahkan Jadual 2

Membandingkan isi jadual dengan nilai yang diharapkan.

waitForPageToLoad 1

Menjeda pelaksanaan sehingga halaman dimuat sepenuhnya.

waitForElementPresent 1

Menjeda pelaksanaan sehingga elemen yang ditentukan menjadi wujud.

Buat Skrip Secara Manual dengan Firebug

Sekarang, kita akan membuat semula kes ujian yang sama secara manual, dengan memasukkan arahan. Kali ini, kita perlu menggunakan Firebug.

Langkah 1
  • Buka Firefox dan Selenium IDE.
  • Taipkan URL asas (http://demo.guru99.com/test/newtours/).
  • Butang rakaman harus MATI.
Langkah 2: Klik pada baris kosong paling atas di Editor.

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

Langkah 3
  • Navigasi Firefox ke URL asas kami dan aktifkan Firebug
  • Dalam panel Selenium IDE Editor, pilih baris kedua (baris di bawah perintah "buka") dan buat perintah kedua dengan menaip "assertTitle" pada kotak Perintah.
  • Jangan ragu untuk menggunakan ciri pelengkap automatik.
Langkah 4
  • Di Firebug, luaskan tag untuk memaparkan tag .</li> <li>Klik pada nilai tag <title> (iaitu "Welcome: Mercury Tours") dan tampalkannya ke medan 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 "taip" pada kotak teks Perintah.</li> <li>Di Firebug, klik pada butang "Periksa".</li> </ul> </td> </tr> <tr> <td>Klik pada kotak teks Nama Pengguna. Perhatikan bahawa Firebug secara automatik menunjukkan kod HTML untuk elemen tersebut.</td> </tr> <tr> <td><strong>Langkah 6</strong> <p>Perhatikan bahawa kotak teks Nama Pengguna tidak mempunyai ID, tetapi mempunyai atribut NAMA. Oleh itu, kami akan menggunakan NAMA sebagai pencari. Salin nilai NAMA dan tampal ke medan Target di Selenium IDE.</p> <p>Masih dalam kotak teks Sasaran, awalan "userName" dengan "name =", menunjukkan Selenium IDE harus menargetkan elemen yang atribut NAME adalah "userName."</p> <p>Ketik "validUN" di kotak teks Nilai Selenium IDE. Skrip ujian anda sekarang harus seperti gambar di bawah. Kami selesai dengan perintah ketiga. Catatan: Daripada tidak sahUN, anda boleh memasukkan rentetan teks yang lain. Tetapi Selenium IDE peka huruf besar kecil, dan anda menaip nilai / atribut 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 butang "Inspect" Firebug untuk mendapatkan pencari kotak teks "Kata Laluan".</li> </ul> <ul> <li> <p>Tampalkan atribut NAME ("kata laluan") ke medan Sasaran dan awalkannya dengan "name ="</p> </li> <li> <p>Taip "tidak sahPW" di medan Nilai di Selenium IDE. Skrip ujian anda sekarang harus seperti gambar di bawah.</p> </li> </ul> </td> </tr> <tr> <td><strong>Langkah 8</strong> <ul> <li>Untuk perintah kelima, ketik "clickAndWait" pada kotak teks Perintah di Selenium IDE.</li> <li>Gunakan butang "Periksa" Firebug untuk mendapatkan pencari butang "Log Masuk".</li> </ul> <ul> <li>Tampalkan nilai atribut NAME ("login") ke kotak teks Sasaran dan awalannya dengan "name =".</li> <li>Skrip ujian anda sekarang harus seperti gambar di bawah.</li> </ul> </td> </tr> </tbody> </table> <p><strong>Langkah 9:</strong> Simpan kes ujian dengan cara yang sama seperti yang kita lakukan di bahagian sebelumnya.</p> <a id="menu-6"></a> <h2>Menggunakan Butang Cari</h2> <p><strong>Butang Cari di Selenium IDE digunakan untuk mengesahkan jika apa yang kami masukkan ke dalam kotak teks Sasaran memang merupakan elemen UI yang betul.</strong></p> <p>Mari kita gunakan kes ujian Invalid_login yang kita buat di bahagian sebelumnya. Klik pada mana-mana arahan dengan entri Sasaran, katakan, perintah ketiga.</p> <p>Klik pada butang Cari. Perhatikan bahawa kotak teks Nama Pengguna dalam halaman Mercury Tours akan diserlahkan sebentar.</p> <p>Ini menunjukkan bahawa Selenium IDE dapat mengesan dan mengakses elemen yang diharapkan dengan betul. Sekiranya butang Cari menyoroti elemen yang berbeza atau tidak ada unsur sama sekali, maka pasti ada yang tidak kena dengan skrip anda.</p> <a id="menu-7"></a> <h2>Laksanakan Perintah</h2> <p><strong>Ini membolehkan anda melaksanakan satu perintah tanpa menjalankan keseluruhan kes ujian</strong> . Cukup klik pada baris yang ingin anda laksanakan dan kemudian klik "Tindakan> Jalankan perintah ini" dari bar menu atau tekan "X" pada papan kekunci anda.</p> <p><strong>Langkah 1.</strong> Pastikan penyemak imbas anda berada di laman utama Mercury Tours. Klik pada arahan yang ingin anda laksanakan. Dalam contoh ini, klik pada baris "type | userName | validUN".</p> <p><strong>Langkah 2.</strong> Tekan "X" pada papan kekunci anda.</p> <p><strong>Langkah 3.</strong> Perhatikan bahawa kotak teks untuk nama pengguna diisi dengan teks "tidak sahUN"</p> <p><strong>Melaksanakan perintah dengan cara ini sangat bergantung pada halaman yang sedang dipaparkan oleh Firefox</strong> . Ini bermaksud bahawa jika anda mencuba contoh di atas dengan halaman utama Google yang dipaparkan dan bukannya Mercury Tours ', langkah anda akan gagal kerana tidak ada kotak teks dengan atribut "userName" di laman utama Google.</p> <a id="menu-8"></a> <h2>Titik permulaan</h2> <p><strong>Titik permulaan adalah petunjuk yang memberitahu Selenium IDE garis mana pelaksanaan akan dimulakan</strong> . <strong>Kekunci pintasannya adalah "S".</strong></p> <p>Dalam contoh di atas, main balik akan bermula pada baris ketiga (taip | kata laluan | tidak sahPW). <strong>Anda hanya boleh mempunyai satu titik permulaan dalam satu skrip ujian.</strong></p> <p>Titik permulaannya mirip dengan Execute Command sehingga bergantung pada halaman yang sedang ditampilkan. Titik permulaan akan gagal jika anda berada di halaman yang salah.</p> <a id="menu-9"></a> <h2>Titik putus</h2> <p>Breakpoints adalah petunjuk yang memberitahu Selenium IDE di mana jeda ujian secara automatik. <strong>Kekunci pintasan adalah "B".</strong></p> <p>Sorotan kuning bermaksud bahawa langkah semasa belum selesai. Ini membuktikan bahawa Selenium IDE telah menghentikan pelaksanaan pada langkah tersebut. <strong>Anda boleh mempunyai beberapa titik putus dalam satu kes ujian.</strong></p> <a id="menu-10"></a> <h2>Langkah</h2> <p>Ini memungkinkan anda untuk melaksanakan perintah yang berjaya satu demi satu setelah menjeda kes ujian. Mari kita gunakan senario di bahagian sebelumnya "Breakpoints."</p> <table> <tbody> <tr> <td width="50%"> </td> <td> <p><strong>Sebelum mengklik "Langkah."</strong></p> <p>Kes ujian berhenti di baris "clickAndWait | login".</p> </td> </tr> <tr> <td width="50%"> </td> <td> <p><strong>Selepas mengklik "Langkah."</strong></p> <p>Baris "clickAndWait | login" dijalankan dan berhenti pada arahan seterusnya (verifikasiTitle | Log masuk: Mercury Tours).</p> <p>Perhatikan bahawa baris seterusnya dijeda walaupun tidak ada titik putus di sana. Ini adalah tujuan utama fitur Langkah - ia melaksanakan perintah yang berjaya satu demi satu untuk memberi anda lebih banyak masa untuk memeriksa hasilnya setelah setiap langkah.</p> </td> </tr> </tbody> </table> <a id="menu-11"></a> <h2>Perkara Penting Yang Perlu Diperhatikan Semasa Menggunakan Format Lain dalam Paparan Sumber</h2> <p><strong>Selenium IDE berfungsi dengan baik hanya dengan HTML - format lain masih dalam mod eksperimen</strong> . Ia adalah <strong>TIDAK dinasihatkan</strong> untuk membuat atau mengedit ujian menggunakan format lain di Source Lihat kerana masih banyak kerja yang diperlukan untuk membuat ia stabil. Berikut adalah pepijat yang diketahui pada versi 1.9.1.</p> <ul> <li>Anda tidak akan dapat melakukan main balik atau beralih kembali ke Jadual Lihat melainkan anda kembali ke HTML.</li> <li>Satu-satunya cara untuk menambahkan perintah dengan selamat pada kod sumber adalah dengan merekodkannya.</li> <li>Apabila anda mengubah kod sumber secara manual, semuanya akan hilang apabila anda beralih ke format lain.</li> <li>Walaupun anda dapat menyimpan kes ujian anda semasa di Source View, Selenium IDE tidak akan dapat membukanya.</li> </ul> <p><strong>Cara yang disyorkan untuk menukar ujian Selenese adalah dengan menggunakan pilihan "Export Test Case As…" di bawah menu File, dan bukan melalui Source View.</strong></p> <a id="menu-12"></a> <h2>Ringkasan</h2> <ul> <li>Skrip ujian boleh dibuat sama ada dengan merakam atau mengetik perintah dan parameter secara manual.</li> <li>Semasa membuat skrip secara manual, Firebug digunakan untuk mendapatkan pencari.</li> <li>Butang Cari digunakan untuk memeriksa bahawa perintah dapat mengakses elemen yang betul.</li> <li>Tampilan Jadual memaparkan skrip ujian dalam bentuk tabel sementara Tampilan Sumber memaparkannya dalam format HTML.</li> <li>Menukar Paparan Sumber ke format bukan HTML masih eksperimen.</li> <li>Jangan gunakan Paparan Sumber dalam membuat ujian dalam format lain. Sebagai gantinya, gunakan ciri Eksport.</li> <li>Parameter tidak diperlukan sepanjang masa. Itu bergantung pada perintah.</li> <li>Terdapat tiga jenis perintah:</li> <ul> <li>Tindakan - berinteraksi secara langsung dengan elemen halaman</li> <li>Aksesor - "membaca" harta elemen dan menyimpannya dalam pemboleh ubah</li> <li>Tegasan - membandingkan nilai sebenar dengan yang diharapkan</li> </ul> <li>Tegasan mempunyai tiga jenis:</li> <ul> <li>Tegaskan - apabila gagal, langkah-langkah yang berjaya tidak lagi dilaksanakan</li> <li>Sahkan - apabila gagal, langkah-langkah yang berjaya masih dilaksanakan.</li> <li>WaitFor - lulus jika keadaan yang ditentukan menjadi kenyataan dalam jangka masa tamat; jika tidak, ia akan gagal</li> </ul> <li>Perintah yang paling biasa adalah:</li> <ul> <li>buka</li> <li>klik / klikAndWait</li> <li>type / typeKeys</li> <li>verifikasiTitle / assertTitle</li> <li>mengesahkanTeksPresent</li> <li>sahkanElementPresent</li> <li>mengesahkan Jadual</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">Jawatan Popular</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="/8003741-get-url-and-url-parts-in-javascript" title="Dapatkan Bahagian URL dan Bahagian URL dalam JavaScript - Trik CSS" rel="bookmark"><img src="https://cdn.css-code.org/5209157/get_url_and_url_parts_in_javascript_css-tricks.png.webp" loading="lazy" alt="Dapatkan Bahagian URL dan Bahagian URL dalam JavaScript - Trik CSS" title="Dapatkan Bahagian URL dan Bahagian URL dalam 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="/8003741-get-url-and-url-parts-in-javascript" title="Dapatkan Bahagian URL dan Bahagian URL dalam JavaScript - Trik CSS" rel="bookmark">Dapatkan Bahagian URL dan Bahagian URL dalam JavaScript - 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="/8003742-keyboardevent-value-keycodes-metakey-etc" title="Nilai Papan Kekunci (kod kunci, metaKey, dll) - Trik CSS" rel="bookmark"><img src="https://cdn.css-code.org/1617345/keyboardevent_value_keycodes-_metakey-_etc_css-tricks.png.webp" loading="lazy" alt="Nilai Papan Kekunci (kod kunci, metaKey, dll) - Trik CSS" title="Nilai Papan Kekunci (kod kunci, metaKey, dll) - 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="/8003742-keyboardevent-value-keycodes-metakey-etc" title="Nilai Papan Kekunci (kod kunci, metaKey, dll) - Trik CSS" rel="bookmark">Nilai Papan Kekunci (kod kunci, metaKey, dll) - 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="/8003743-loop-through-array-without-wasteful-lookups" title="Gelung Melalui Array Tanpa Pencarian Boros - Trik CSS" rel="bookmark"><img src="https://cdn.css-code.org/8011031/loop_through_array_without_wasteful_lookups_css-tricks.png.webp" loading="lazy" alt="Gelung Melalui Array Tanpa Pencarian Boros - Trik CSS" title="Gelung Melalui Array Tanpa Pencarian Boros - 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="/8003743-loop-through-array-without-wasteful-lookups" title="Gelung Melalui Array Tanpa Pencarian Boros - Trik CSS" rel="bookmark">Gelung Melalui Array Tanpa Pencarian Boros - Trik CSS 2025</a></h3> </div> </div> </li> </ul> </div> <div class="widget widget-popular-posts"> <h2 class="widget-title">ulasan terbaik di 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="/8225157-python-timeit-with-examples" title="Python Timeit () dengan Contoh" rel="bookmark">Python Timeit () 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="/8225158-python-map-function-with-examples" title="Peta Python () berfungsi dengan CONTOH" rel="bookmark">Peta Python () berfungsi 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="/8225159-yield-in-python-tutorial-generator-and-yield-vs-return-example" title="Hasil dalam Tutorial Python: Penjana & Contoh Hasil vs Pulangan" rel="bookmark">Hasil dalam Tutorial Python: Penjana & Contoh Hasil vs Pulangan</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="/8225160-python-queue-fifo-lifo-example" title="Python Queue: FIFO, LIFO Contoh" rel="bookmark">Python Queue: FIFO, LIFO 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="/8225161-enumerate-function-in-python-loop-tuple-string-example" title="Enumerate () Fungsi dalam Python: Loop, Tuple, String (Contoh)" rel="bookmark">Enumerate () Fungsi dalam Python: Loop, Tuple, String (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="/8225162-python-time-sleep-add-delay-to-your-code-example" title="Python time.sleep (): Tambahkan Kelewatan pada Kod Anda (Contoh)" rel="bookmark">Python time.sleep (): Tambahkan Kelewatan pada Kod Anda (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="/8225163-python-counter-in-collections-with-example" title="Kaunter Python dalam Koleksi dengan Contoh" rel="bookmark">Kaunter Python dalam Koleksi 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="/8225164-type-and-isinstance-in-python-with-examples" title="Taip () dan isinstance () dalam Python dengan Contoh" rel="bookmark">Taip () dan isinstance () dalam 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="Talian Baru Python: Cara Mencetak TANPA Talian Baru di Python" rel="bookmark">Talian Baru Python: Cara Mencetak TANPA Talian Baru di 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="Fail COPY Python menggunakan shutil.copy (), shutil.copystat ()" rel="bookmark">Fail 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 Fail atau Direktori Ada" rel="bookmark">Python Periksa Jika Fail 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="Pengendalian Fail Python: Cara Membuat, Membuka, Menambah, Membaca, Menulis" rel="bookmark">Pengendalian Fail Python: Cara Membuat, Membuka, Menambah, 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 Namakan semula Fail dan Direktori menggunakan os.rename ()" rel="bookmark">Python Namakan semula Fail 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="Fail Zip Python dengan Contoh" rel="bookmark">Fail 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="Pengendalian Pengecualian Python: Cuba, Tangkap, Akhirnya" rel="bookmark">Pengendalian Pengecualian Python: Cuba, Tangkap, Akhirnya</a></h3> </div> </div> </li> </ul> </div> <div id="container-5533149ee6411a5f99b370c693e87966"></div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Artikel Top</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="/8003418-139-individual-forums-thread-styling" title="# 139: Gaya Thread Forum Individu - Trik CSS" rel="bookmark"><img src="https://cdn.css-code.org/2037686/139_individual_forums_thread_styling_css-tricks.png.webp" loading="lazy" alt="# 139: Gaya Thread Forum Individu - Trik CSS" title="# 139: Gaya Thread Forum Individu - 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="/8003418-139-individual-forums-thread-styling" title="# 139: Gaya Thread Forum Individu - Trik CSS" rel="bookmark"># 139: Gaya Thread Forum Individu - 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="/8003419-137-forums-wrangling-part-4-getting-control" title="# 137: Pertengkaran Forum, Bahagian 4, Mendapatkan Kawalan - Trik CSS" rel="bookmark"><img src="https://cdn.css-code.org/4953556/137_forums_wrangling-_part_4-_getting_control_css-tricks.png.webp" loading="lazy" alt="# 137: Pertengkaran Forum, Bahagian 4, Mendapatkan Kawalan - Trik CSS" title="# 137: Pertengkaran Forum, Bahagian 4, Mendapatkan Kawalan - 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="/8003419-137-forums-wrangling-part-4-getting-control" title="# 137: Pertengkaran Forum, Bahagian 4, Mendapatkan Kawalan - Trik CSS" rel="bookmark"># 137: Pertengkaran Forum, Bahagian 4, Mendapatkan Kawalan - 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="/8003420-140-forums-signup-styling" title="# 140: Gaya Pendaftaran Forum - Trik CSS" rel="bookmark"><img src="https://cdn.css-code.org/2193753/140_forums_signup_styling_css-tricks.png.webp" loading="lazy" alt="# 140: Gaya Pendaftaran Forum - Trik CSS" title="# 140: Gaya Pendaftaran Forum - 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="/8003420-140-forums-signup-styling" title="# 140: Gaya Pendaftaran Forum - Trik CSS" rel="bookmark"># 140: Gaya Pendaftaran Forum - 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">Jawatan Popular</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222559-v-model-in-software-testing" title="Model V dalam Ujian Perisian" rel="bookmark">Model V dalam Ujian Perisian</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222560-stlc-software-testing-life-cycle-phases-entry-exit-criteria" title="STLC (Kitaran Hayat Menguji Perisian) Fasa, Kemasukan, Kriteria Keluar" rel="bookmark">STLC (Kitaran Hayat Menguji Perisian) Fasa, Kemasukan, Kriteria Keluar</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222561-manual-testing-tutorial-what-is-concepts-types-and-tool" title="Tutorial Pengujian Manual: Apa itu, Konsep, Jenis & Alat" rel="bookmark">Tutorial Pengujian Manual: Apa itu, Konsep, Jenis & Alat</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222562-automation-testing-vs-manual-testing-whats-the-difference" title="Ujian Automasi Vs. Ujian Manual: Apakah Perbezaannya?" rel="bookmark">Ujian Automasi Vs. Ujian Manual: Apakah Perbezaannya?</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222563-what-is-system-testing-types-and-definition-with-example" title="Apa itu Ujian Sistem? Jenis & Definisi dengan Contoh" rel="bookmark">Apa itu Ujian Sistem? Jenis & Definisi dengan Contoh</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="/8225598-top-20-sqlite-interview-questions-and-answers" title="20 Soalan Temuduga SQLite Teratas & Jawapan" rel="bookmark">20 Soalan Temuduga SQLite Teratas & Jawapan</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8225599-sqlite-tutorial-pdf-download-sqlite-documentation" title="Tutorial SQLite PDF: (Muat turun) Dokumentasi SQLite" rel="bookmark">Tutorial SQLite PDF: (Muat turun) Dokumentasi SQLite</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8225601-what-is-sql-server-introduction-version-history" title="Apa itu SQL Server? Pengenalan, Sejarah Versi" rel="bookmark">Apa itu SQL Server? Pengenalan, Sejarah Versi</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8225602-sql-server-architecture-explained-named-pipes-optimizer-buffer-manager" title="Senibina Pelayan SQL Dijelaskan: Paip Dinamakan, Pengoptimum, Pengurus Penyangga" rel="bookmark">Senibina Pelayan SQL Dijelaskan: Paip Dinamakan, Pengoptimum, Pengurus Penyangga</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8225603-sql-server-database-create-alter-drop-restore" title="Pangkalan Data Pelayan SQL: Buat, Ubah, Jatuhkan, Pulihkan" rel="bookmark">Pangkalan Data Pelayan SQL: Buat, Ubah, Jatuhkan, Pulihkan</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Artikel Top</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224362-how-to-create-inquiry-in-sap-va11" title="Cara Membuat Pertanyaan dalam SAP: VA11" rel="bookmark">Cara Membuat Pertanyaan dalam SAP: VA11</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224363-how-to-create-quotation-sap-va21" title="Cara Membuat Sebutharga: SAP VA21" rel="bookmark">Cara Membuat Sebutharga: SAP VA21</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224364-how-to-create-sales-order-sap-va01" title="Cara Membuat Pesanan Jualan: SAP VA01" rel="bookmark">Cara Membuat Pesanan Jualan: SAP VA01</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224365-how-to-create-debit-memo-in-sap" title="Cara Membuat Memo Debit di SAP" rel="bookmark">Cara Membuat Memo Debit di SAP</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224367-how-to-create-credit-memo-in-sap" title="Cara Membuat Memo Kredit di SAP" rel="bookmark">Cara Membuat Memo Kredit di SAP</a></h3> </div> </div> </li> </ul> </div> </div> </div> <p>© Copyright ms.css-code.org, 2025 Ogos | <a href="https://ms.css-code.org/about-site" title="Mengenai laman web">Mengenai laman web</a> | <a href="https://ms.css-code.org/contacts" title="Kenalan">Kenalan</a> | <a href="https://ms.css-code.org/privacy-policy" title="Dasar Privasi.">Dasar Privasi.</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>