ที่เก็บวัตถุใน Selenium (ไฟล์ XML และคุณสมบัติ)
พื้นที่เก็บข้อมูลวัตถุคืออะไร?
ที่เก็บอ็อบเจ็กต์คือที่เก็บข้อมูลทั่วไปสำหรับอ็อบเจ็กต์ทั้งหมด ใน Selenium บริบทของ WebDriver โดยทั่วไปออบเจ็กต์จะเป็นตัวระบุตำแหน่งที่ใช้ในการระบุองค์ประกอบเว็บโดยไม่ซ้ำกัน
ข้อได้เปรียบที่สำคัญของการใช้ที่เก็บวัตถุคือการแยกวัตถุออกจากกรณีทดสอบ หากค่าตัวระบุตำแหน่งขององค์ประกอบเว็บหนึ่งเปลี่ยนแปลง เฉพาะที่เก็บอ็อบเจ็กต์เท่านั้นที่ต้องเปลี่ยน แทนที่จะทำการเปลี่ยนแปลงในกรณีทดสอบทั้งหมดที่มีการใช้ตัวระบุตำแหน่ง การดูแลรักษาที่เก็บอ็อบเจ็กต์จะเพิ่มความเป็นโมดูลาร์ของการนำเฟรมเวิร์กไปใช้
ประเภทของที่เก็บวัตถุใน Selenium เว็บไดร์เวอร์
Selenium WebDriver ไม่มีพื้นที่เก็บข้อมูลวัตถุที่สร้างขึ้นตามค่าเริ่มต้น อย่างไรก็ตาม ที่เก็บอ็อบเจ็กต์สามารถสร้างได้โดยใช้วิธีจับคู่คีย์-ค่า โดยที่คีย์อ้างถึงชื่อที่กำหนดให้กับอ็อบเจ็กต์ และค่าอ้างถึงคุณสมบัติที่ใช้ในการระบุอ็อบเจ็กต์ภายในเว็บเพจโดยไม่ซ้ำกัน
ต่อไปนี้เป็นประเภทของที่เก็บวัตถุที่สามารถสร้างได้ใน Selenium เว็บไดร์เวอร์
- พื้นที่เก็บข้อมูลวัตถุโดยใช้ไฟล์คุณสมบัติ
- พื้นที่เก็บข้อมูลวัตถุโดยใช้ไฟล์ XML
Selenium พื้นที่เก็บข้อมูลวัตถุไดรเวอร์เว็บโดยใช้ไฟล์คุณสมบัติ
ในแนวทางนี้ ไฟล์คุณสมบัติคือไฟล์ข้อความที่จัดเก็บข้อมูลในรูปแบบของคู่คีย์-ค่า บทช่วยสอนด้านล่างนี้จะกล่าวถึงหัวข้อต่อไปนี้
- การสร้างไฟล์คุณสมบัติใน Eclipse
- การจัดเก็บข้อมูลลงในไฟล์คุณสมบัติ
- อ่านข้อมูลจากไฟล์คุณสมบัติ
- การใช้ไฟล์คุณสมบัติในสคริปต์ทดสอบ
ขั้นตอนที่ 1) การสร้างไฟล์คุณสมบัติใน Eclipse
- ในการเริ่มต้น จำเป็นต้องสร้างโครงสร้างโครงการ Java ด้านล่างใน Eclipse ชื่อโครงการและชื่อแพ็กเกจสามารถเป็นชื่อที่ถูกต้องได้
- คลิกขวาที่โฟลเดอร์โปรเจ็กต์หลักแล้วเลือกใหม่ -> อื่น ๆ
- ในหน้าต่างถัดไป เลือกทั่วไป -> ไฟล์ และคลิกที่ปุ่ม 'ถัดไป'
- ระบุชื่อไฟล์ที่ถูกต้องพร้อมนามสกุล '.properties' ในหน้าต่างทรัพยากรไฟล์ใหม่ และคลิกที่ปุ่ม 'เสร็จสิ้น'
- ไฟล์ชื่อ 'application.properties' จะต้องแสดงบนโครงสร้างโครงการ
ขั้นตอนที่ 2) จัดเก็บข้อมูลลงในไฟล์คุณสมบัติ
- ข้อมูลจะถูกจัดเก็บไว้ในไฟล์คุณสมบัติในรูปแบบของคู่คีย์-ค่า โดยที่คีย์จะไม่ซ้ำกันทั่วทั้งไฟล์
- เราจะพยายามใช้ไฟล์คุณสมบัติเพื่อระบุองค์ประกอบเว็บโดยใช้ค่าตัวระบุตำแหน่ง
- เปิดไฟล์ application.properties ใน Eclipse และเก็บข้อมูลต่อไปนี้
MobileTesting=//a[text()='MOBILE TESTING'] EmailTextBox = philadelphia-field-email SignUpButton = philadelphia-field-submit
4) สำหรับบทช่วยสอนนี้ จะใช้เว็บไซต์สาธิตต่อไปนี้:
http://demo.guru99.com/test/guru99home/
- นี่คือสถานการณ์การทดสอบ:
- คลิกลิงก์การทดสอบมือถือโดยใช้ XPATH
- ย้อนกลับ
- ป้อนข้อมูลลงในกล่องข้อความอีเมล์โดยใช้ ID
- คลิกที่ปุ่มลงทะเบียนโดยใช้ ID
ขั้นตอนที่ 3) อ่านข้อมูลจากไฟล์คุณสมบัติ
- การอ่านข้อมูลจากไฟล์คุณสมบัติสามารถทำได้โดยใช้คลาสคุณสมบัติในตัวที่ให้ไว้ในแพ็คเกจ java.util
- เริ่มแรกจำเป็นต้องสร้างอ็อบเจ็กต์ของคลาส Properties ดังต่อไปนี้
Properties obj = new Properties();
- เราจำเป็นต้องสร้างวัตถุของคลาส FileInputStream ด้วยเส้นทางไปยังไฟล์คุณสมบัติ
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
- การอ่านข้อมูลจากไฟล์คุณสมบัติสามารถทำได้โดยใช้วิธีการโหลดที่นำเสนอโดยคลาสคุณสมบัติใน java รหัสด้านล่างแสดงให้เห็นถึงการใช้วิธีการโหลด
Properties obj = new Properties(); FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties"); obj.load(objfile); String mobileTesting = obj.getProperty("MobileTesting");
สตริง 'mobileTesting' จะมี XPATH เพื่อระบุลิงก์การทดสอบมือถือภายในหน้าเว็บ
ขั้นตอนที่ 4) การใช้ไฟล์คุณสมบัติในสคริปต์ทดสอบ
ไฟล์คุณสมบัติสามารถใช้ในสคริปต์ทดสอบโดยการอ่านข้อมูลจากไฟล์คุณสมบัติและส่งข้อมูลเป็นพารามิเตอร์ไปยังเมธอด findElement โค้ดด้านล่างสาธิตการใช้ข้อมูลที่อ่านจากไฟล์คุณสมบัติในสคริปต์ทดสอบ
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();
ด้านล่างนี้เป็นรหัสที่สมบูรณ์ที่ใช้สำหรับสถานการณ์การทดสอบข้างต้น
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("http://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 พื้นที่เก็บข้อมูลวัตถุ WebDriver โดยใช้ไฟล์ XML
XML ย่อมาจาก Extensible Markup Language ไฟล์ XML ใช้ Document Object Model (DOM) เป็นโครงสร้างพื้นฐาน รูปแบบไฟล์ XML จะจำลองรูปแบบ HTML ที่ใช้สร้างเว็บเพจ ด้านล่างนี้คือรายการหัวข้อที่จะกล่าวถึง
- การสร้างไฟล์ XML ใน Eclipse
- การจัดเก็บข้อมูลลงในไฟล์ XML
- การอ่านข้อมูลจากไฟล์ XML
- การใช้ไฟล์ XML ในสคริปต์ทดสอบ
ขั้นตอนที่ 1) การสร้างไฟล์ XML ใน Eclipse
- จำเป็นต้องสร้างโครงสร้างโปรเจ็กต์ Java ด้านล่าง Eclipse.
- คลิกขวาที่โฟลเดอร์โปรเจ็กต์ เลือก New -> Other
- เลือกไฟล์ XML ภายในโฟลเดอร์ XML และคลิกที่ปุ่ม 'ถัดไป'
- ป้อนชื่อไฟล์ XML ที่ถูกต้องและคลิกที่ปุ่ม 'เสร็จสิ้น'
- ไฟล์ XML จะถูกเพิ่มลงในโฟลเดอร์โครงการดังที่แสดงด้านล่าง
ขั้นตอนที่ 2) การจัดเก็บข้อมูลลงในไฟล์ XML
ข้อมูลสามารถจัดเก็บในรูปแบบไฟล์ XML ในรูปแบบของ Document Object Model (DOM) เพื่อความเรียบง่าย เราสามารถใช้สถานการณ์การทดสอบด้านล่างเป็นตัวอย่าง
- คลิกลิงก์การทดสอบมือถือโดยใช้ XPATH
- นำทางกลับไปที่หน้าแรก
- ป้อนข้อมูลลงในกล่องข้อความอีเมล์โดยใช้ ID
- คลิกที่ปุ่มลงทะเบียนโดยใช้ ID
ด้านล่างนี้คือรูปแบบของไฟล์ XML ที่จะใช้
<menu> <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting> <email> philadelphia-field-email</email> <signup> philadelphia-field-submit </signup> </menu>
เก็บโค้ด XML ข้างต้นไว้ใน properties.xml
ในแท็บการออกแบบ คุณจะเห็น
ขั้นตอนที่ 3) อ่านข้อมูลจากไฟล์ XML
1. การอ่านข้อมูลจากไฟล์ XML สามารถทำได้โดยใช้คลาส 'dom4j' ในตัวใน java โปรดทราบว่าคุณต้องเพิ่มไฟล์ JAR ด้านล่างลงในเส้นทางการ build ของโปรเจ็กต์ของคุณก่อนที่จะดำเนินการโค้ดต่อไป
- jaxen.jar
- dom4j-1.6.jar
2. ด้านล่างเป็นโค้ดสำหรับอ่านข้อมูลจากไฟล์ 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. ในขั้นแรก เราจำเป็นต้องสร้างวัตถุ File และส่งผ่านเป็นพารามิเตอร์ไปยังเมธอด 'read' ของคลาส SAXReader เมื่ออ่านข้อมูลไฟล์ XML สำเร็จแล้ว เราสามารถเข้าถึงแต่ละโหนดของเอกสาร XML ได้โดยใช้เมธอด 'selectSingleNode'
ขั้นตอนที่ 4) การใช้ไฟล์ XML ในสคริปต์ทดสอบ
ไฟล์ XML สามารถใช้ในสคริปต์ทดสอบได้โดยการอ่านข้อมูลจากไฟล์ XML และส่งข้อมูลเป็นพารามิเตอร์ไปยังเมธอด findElement รหัสด้านล่างแสดงให้เห็นถึงการใช้ข้อมูลที่อ่านจากไฟล์ XML ในสคริปต์ทดสอบ
driver.findElement(By.xpath(mobileTesting)).click(); driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click();
โค้ดด้านล่างนี้สาธิตการใช้งานไฟล์ XML ใน 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("http://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(); } }
ดาวน์โหลด WebDriver Eclipse โครงการ
สรุป
- ที่เก็บอ็อบเจ็กต์คือที่เก็บข้อมูลทั่วไปสำหรับอ็อบเจ็กต์ทั้งหมด
- Selenium WebDriver ไม่มีพื้นที่เก็บข้อมูลวัตถุที่สร้างขึ้นตามค่าเริ่มต้น
- คุณสามารถสร้าง Object Repository ได้ 2 ประเภท Selenium
- พื้นที่เก็บข้อมูลวัตถุโดยใช้ไฟล์คุณสมบัติ
- พื้นที่เก็บข้อมูลวัตถุโดยใช้ไฟล์ XML
- ไฟล์คุณสมบัติเป็นไฟล์ข้อความที่ข้อมูลถูกจัดเก็บในรูปแบบของคู่คีย์-ค่า
- รูปแบบไฟล์ XML จะจำลองรูปแบบ HTML ที่ใช้สร้างเว็บเพจ