Repositori Objek di Selenium (XML & File Properti)
Apa itu Repositori Objek?
Repositori objek adalah lokasi penyimpanan umum untuk semua objek. Di dalam Selenium Dalam konteks WebDriver, objek biasanya menjadi pencari lokasi yang digunakan untuk mengidentifikasi elemen web secara unik.
Keuntungan utama menggunakan repositori objek adalah pemisahan objek dari kasus uji. Jika nilai locator dari satu elemen web berubah, hanya repositori objek yang perlu diubah daripada membuat perubahan di semua kasus pengujian di mana locator telah digunakan. Mempertahankan repositori objek meningkatkan modularitas implementasi kerangka kerja.
Jenis Repositori Objek di Selenium Pengemudi Web
Selenium WebDriver tidak menawarkan repositori objek bawaan secara default. Namun, repositori objek dapat dibangun menggunakan pendekatan pasangan nilai kunci dimana kunci mengacu pada nama yang diberikan pada objek dan nilai mengacu pada properti yang digunakan untuk mengidentifikasi objek secara unik dalam halaman web.
Berikut ini adalah jenis repositori objek yang dapat dibuat di Selenium Pengemudi Web.
- Repositori Objek menggunakan file Properties
- Repositori Objek menggunakan file XML
Selenium Repositori Objek Driver Web menggunakan file Properties
Dalam pendekatan ini, berkas properti adalah berkas teks tempat data disimpan dalam bentuk pasangan kunci-nilai. Tutorial di bawah ini akan membahas topik-topik berikut.
- Membuat file properti di Eclipse
- Menyimpan data ke file properti
- Membaca data dari file properti
- Menggunakan file properti dalam skrip pengujian
Langkah 1) Membuat file properti di eclipse
- Untuk memulai, struktur proyek Java di bawah ini perlu dibuat di Eclipse. Nama proyek dan nama paket dapat berupa nama apa pun yang valid.
- Klik kanan pada folder proyek utama dan Pilih Baru-> Lainnya
- Di jendela berikutnya, pilih Umum -> File dan klik tombol 'Berikutnya'
- Berikan nama file yang valid dengan ekstensi '.properties' pada jendela sumber daya file baru dan klik tombol 'Selesai'
- File bernama 'application.properties' harus ditampilkan di Struktur Proyek
Langkah 2) Menyimpan data ke file properti
- Data disimpan dalam file properti dalam bentuk pasangan nilai kunci, dengan kunci unik di seluruh file.
- Kami akan mencoba menggunakan file properti untuk mengidentifikasi elemen web menggunakan nilai pencari lokasi.
- Buka file application.properties di Eclipse dan simpan data berikut
MobileTesting=//a[text()='MOBILE TESTING'] EmailTextBox = philadelphia-field-email SignUpButton = philadelphia-field-submit
4) Untuk tutorial ini, situs web demo berikut digunakan:
https://demo.guru99.com/test/guru99home/. Berikut adalah skenario Tes:
- Klik tautan Pengujian Seluler menggunakan XPATH
- Navigasi kembali
- Masukkan data ke kotak teks email menggunakan ID
- Klik tombol Daftar menggunakan ID
Langkah 3) Membaca data dari file properti
- Membaca data dari file properti dapat dilakukan menggunakan kelas Properties bawaan yang disediakan dalam paket java.util.
- Awalnya, objek kelas Properties perlu dibuat seperti di bawah ini
Properties obj = new Properties();
- Kita perlu membuat objek kelas FileInputStream dengan jalur ke file properti
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
- Membaca data dari file properti dapat dilakukan dengan menggunakan metode load yang ditawarkan oleh kelas Properties di java. Kode di bawah ini menunjukkan penggunaan metode load.
Properties obj = new Properties(); FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties"); obj.load(objfile); String mobileTesting = obj.getProperty("MobileTesting");
String 'mobileTesting' akan berisi XPATH untuk mengidentifikasi tautan Pengujian Seluler dalam laman web.
Langkah 4) Menggunakan file properti dalam skrip pengujian
File properti dapat digunakan dalam skrip pengujian dengan membaca data dari file properti dan meneruskan data sebagai parameter ke metode findElement. Kode di bawah ini menunjukkan penggunaan data yang dibaca dari file properti dalam skrip pengujian.
driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click(); driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(obj.getProperty("SignUpButton"))).click();
Di bawah ini adalah kode lengkap yang digunakan untuk skenario pengujian di atas.
package com.objectrepository.demo; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class DemoOR { public static void main(String[] args) throws IOException { // Create WebDriver Instance WebDriver driver; System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/guru99home/"); driver.manage().window().maximize(); // Load the properties File Properties obj = new Properties(); FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties"); obj.load(objfile); // Nagigate to link Mobile Testing and Back driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click(); driver.navigate().back(); // Enter Data into Form driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(obj.getProperty("SignUpButton"))).click(); } }
Selenium Repositori Objek WebDriver Menggunakan File XML
XML adalah singkatan dari Extensible Markup Language. File XML menggunakan Document Object Model (DOM) sebagai struktur dasarnya. Format File XML akan mereplikasi format HTML yang menjadi dasar pembuatan halaman web. Di bawah ini adalah daftar topik yang akan dibahas.
- Membuat file XML di Eclipse
- Menyimpan data ke file XML
- Membaca data dari file XML
- Menggunakan file XML dalam skrip pengujian
Langkah 1) Membuat file XML di Eclipse
- Struktur proyek Java di bawah ini perlu dibuat Eclipse.
- Klik kanan pada folder proyek, pilih Baru -> Lainnya
- Pilih File XML dalam folder XML dan klik tombol 'Berikutnya'
- Masukkan nama File XML yang valid dan klik tombol 'Selesai'
- File XML akan ditambahkan ke folder proyek seperti yang ditunjukkan di bawah ini
Langkah 2) Menyimpan data ke file XML
Data dapat disimpan dalam file XML dalam bentuk Document Object Model (DOM). Demi kesederhanaan, kita dapat menggunakan skenario pengujian di bawah ini sebagai contoh.
- Klik tautan Pengujian Seluler menggunakan XPATH
- Navigasi Kembali ke halaman Beranda
- Masukkan data ke kotak teks email menggunakan ID
- Klik tombol Daftar menggunakan ID
Di bawah ini adalah format File XML yang akan digunakan.
<menu> <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting> <email> philadelphia-field-email</email> <signup> philadelphia-field-submit </signup> </menu>
Simpan kode XML di atas di properti.xml
Di tab desain Anda akan melihat
Langkah 3) Membaca data dari file XML
1. Membaca data dari file XML dapat dilakukan dengan menggunakan kelas 'dom4j' bawaan di java. Harap dicatat bahwa Anda perlu menambahkan file JAR di bawah ini ke jalur pembangunan proyek Anda sebelum melanjutkan dengan kode.
- jaxen.jar
- dom4j-1.6.jar
2. Di bawah ini adalah kode untuk membaca data dari file XML.
File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml"); SAXReader saxReader = new SAXReader(); Document document = saxReader.read(inputFile); String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText(); String emailTextBox = document.selectSingleNode("//menu/email").getText(); String signUpButton = document.selectSingleNode("//menu/signup").getText();
3. Awalnya, kita perlu membuat objek File dan meneruskannya sebagai parameter ke metode 'baca' kelas SAXReader. Setelah data file XML berhasil dibaca, kita dapat mengakses masing-masing node dokumen XML menggunakan metode 'selectSingleNode'.
Langkah 4) Menggunakan file XML dalam skrip pengujian
File XML dapat digunakan dalam skrip pengujian dengan membaca data dari file XML dan meneruskan data sebagai parameter ke metode findElement. Kode di bawah ini menunjukkan penggunaan data yang dibaca dari file XML dalam skrip pengujian.
driver.findElement(By.xpath(mobileTesting)).click(); driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click();
Kode di bawah ini menunjukkan penggunaan file XML di Selenium WebDriver
package com.objectrepository.demo; import java.io.*; import java.util.*; import org.dom4j.*; import org.dom4j.io.SAXReader; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class DemoORXML { public static void main(String[] args) throws DocumentException { // Creating WebDriver Instance WebDriver driver; System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/guru99home/"); driver.manage().window().maximize(); // Reading XML File File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml"); SAXReader saxReader = new SAXReader(); Document document = saxReader.read(inputFile); String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText(); String emailTextBox = document.selectSingleNode("//menu/email").getText(); String signUpButton = document.selectSingleNode("//menu/signup").getText(); //Navigating to Mobile Testing and back driver.findElement(By.xpath(mobileTesting)).click(); driver.navigate().back(); //Entering Form Data driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click(); } }
Unduh WebDriver Eclipse Project
Ringkasan
- Repositori objek adalah lokasi penyimpanan umum untuk semua objek
- Selenium WebDriver tidak menawarkan repositori objek bawaan secara default
- Anda dapat membuat 2 Jenis Repositori Objek di Selenium
- Repositori Objek menggunakan file Properties
- Repositori Objek menggunakan file XML
- File properti adalah file teks tempat data disimpan dalam bentuk pasangan nilai kunci
- Format File XML akan mereplikasi format HTML yang menjadi dasar pembuatan halaman web.