Untuk memahami ekstensi, pertama-tama mari kita pahami tiga pilar selenium IDE
- Tindakan: Operasi apa yang Anda lakukan di Layar UI
- Penilai / Penegasan: Verifikasi apa yang Anda lakukan pada data yang Anda dapatkan dari UI
- Strategi Penunjuk Lokasi: Bagaimana kita bisa menemukan elemen di UI.
Sekarang, Selenium IDE memiliki perpustakaan yang sangat matang dengan banyak Strategi Tindakan, Penegasan / Penilai, dan Penunjuk Lokasi.
Namun terkadang kami perlu menambahkan beberapa fungsi lagi untuk keperluan proyek kami. Dalam situasi itu, kami dapat memperluas pustaka ini dengan menambahkan ekstensi khusus kami. Ekstensi ubahsuaian ini disebut 'Ekstensi Pengguna'.
Misalnya, kita membutuhkan Action yang dapat mengubah teks menjadi huruf besar sebelum mengisinya dalam elemen web. Anda tidak dapat menemukan Tindakan ini di perpustakaan Tindakan default. Jika demikian, Anda dapat membuat 'Ekstensi Pengguna' Anda sendiri. Dalam tutorial ini, kita akan belajar cara membuat ekstensi pengguna untuk mengubah Teks menjadi Huruf Besar
Persyaratan untuk membuat ekstensi pengguna Selenium:
Untuk membuat ekstensi pengguna pada Selenium IDE, kita perlu mengetahui konsep dasar JavaScript dan konsep objek prototipe Java Script.
Untuk membuat ekstensi pengguna, Anda perlu membuat metode skrip Java dan menambahkannya ke prototipe objek selenium dan prototipe objek PageBot.
Bagaimana Selenium IDE mengenali Ekstensi Pengguna?
Setelah menambahkan Ekstensi Pengguna ke Selenium IDE saat kita memulai Selenium IDE, semua ekstensi ini dalam prototipe javascript dimuat, dan Selenium IDE mengenalinya dengan namanya.
Cara Membuat Ekstensi Pengguna
Langkah 1) Tindakan - semua tindakan dimulai dengan "lakukan", yaitu jika tindakan untuk teks huruf besar maka namanya akan menjadi doTextUpperCase. Saat kita menambahkan metode tindakan ini di Selenium IDE, Selenium IDE akan membuat sendiri metode tunggu untuk tindakan ini. Jadi dalam kasus ini ketika kita membuat tindakan doTextUpperCase , Selenium IDE akan membuat fungsi tunggu yang sesuai sebagai TextUpperCaseAndWait . Ini dapat menerima dua parameter
Contoh: Tindakan Teks Huruf Besar
Selenium.prototype.doTextUpperCase = fungsi (pelacak, teks) {// Di sini findElement sendiri mampu menangani semua jenis locator (xpath, css, name, id, className), Kita hanya perlu meneruskan teks locatorvar element = this.page (). findElement (locator);// Buat teks untuk diketiktext = text.toUpperCase ();// Ganti teks elemen dengan teks baruthis.page (). replaceText (elemen, teks);};
Langkah 2) Penilai / Penegasan - Semua penilai yang terdaftar di prototipe objek selenium akan diawali
dengan "get" atau "adalah" Ex. getValueFromCompoundTable, isValueFromCompoundTable. Ini dapat menerima dua parameter, satu untuk target dan satu lagi untuk bidang nilai dalam kasus uji.
Untuk setiap Penilai, akan ada fungsi verifikasi terkait yang diawali dengan "verifikasi", "tegaskan" dan awalan fungsi tunggu dengan "waitFor"
Contoh: Untuk penilai Teks Huruf Besar
Selenium.prototype.assertTextUpperCase = fungsi (pelacak, teks) {// Semua strategi pelacak secara otomatis ditangani oleh "findElement"var element = this.page (). findElement (locator);// Buat teks untuk memverifikasitext = text.toUpperCase ();// Dapatkan nilai elemen sebenarnyavar actualValue = element.value;// Pastikan nilai sebenarnya sesuai dengan yang diharapkanAssert.matches (expectedValue, actualValue);};Selenium.prototype.isTextEqual = fungsi (pelacak, teks) {kembalikan this.getText (locator) .value === text;};Selenium.prototype.getTextValue = fungsi (pelacak, teks) {kembalikan this.getText (locator) .value;};
Langkah 3) Strategi pencari lokasi- Jika kita ingin membuat fungsi kita sendiri untuk mencari elemen kemudian
kita perlu memperluas prototipe PageBot dengan fungsi dengan awalan "locateElementBy."
Ini akan mengambil dua parameter, pertama akan menjadi string locator dan kedua akan menjadi dokumen
di tempat yang perlu dicari.
Contoh: Untuk Pencari Teks Huruf Besar
// "inDocument" adalah dokumen yang Anda cari.PageBot.prototype.locateElementByUpperCase = fungsi (teks, inDocument) {// Buat teks yang akan dicarivar expectedValue = text.toUpperCase ();// Ulangi semua elemen, cari elemen yang memiliki// nilai === nilai yang kami harapkanvar allElements = inDocument.getElementsByTagName ("*");// Bintang '*' ini adalah sejenis ekspresi reguler yang akan melewati setiap elemen (dalam HTML DOM setiap elemen pasti memiliki nama tag seperti , ,,