ที่เก็บวัตถุใน Selenium
⚡ สรุปอย่างชาญฉลาด
ที่เก็บวัตถุใน Selenium วิธีนี้ช่วยรวมตัวระบุตำแหน่งขององค์ประกอบไว้ในไฟล์ภายนอกไฟล์เดียว แยกออกจากสคริปต์ทดสอบ ซึ่งช่วยให้การบำรุงรักษาง่ายขึ้น และช่วยให้ผู้ทดสอบสามารถอัปเดตตัวระบุตำแหน่งได้ในที่เดียว แทนที่จะต้องแก้ไขกรณีทดสอบหลายๆ กรณี

พื้นที่เก็บข้อมูลวัตถุคืออะไร?
ที่เก็บอ็อบเจ็กต์คือที่เก็บข้อมูลทั่วไปสำหรับอ็อบเจ็กต์ทั้งหมด ใน Selenium บริบทของ WebDriver โดยทั่วไปออบเจ็กต์จะเป็นตัวระบุตำแหน่งที่ใช้ในการระบุองค์ประกอบเว็บโดยไม่ซ้ำกัน
ข้อดีหลักของการใช้คลังเก็บวัตถุคือการแยกวัตถุออกจากกรณีทดสอบ หากค่าตัวระบุตำแหน่งขององค์ประกอบเว็บหนึ่งเปลี่ยนแปลงไป ก็จำเป็นต้องเปลี่ยนแปลงเฉพาะคลังเก็บวัตถุเท่านั้น ไม่จำเป็นต้องเปลี่ยนแปลงในทุกกรณีทดสอบที่ใช้ตัวระบุตำแหน่งนั้น การดูแลรักษาคลังเก็บวัตถุช่วยเพิ่มความเป็นโมดูลาร์ของการใช้งานเฟรมเวิร์ก
ประเภทของที่เก็บวัตถุใน Selenium เว็บไดร์เวอร์
Selenium WebDriver ไม่ได้มีคลังเก็บอ็อบเจ็กต์ในตัวมาให้โดยค่าเริ่มต้น อย่างไรก็ตาม สามารถสร้างคลังเก็บอ็อบเจ็กต์ได้โดยใช้แนวทางคู่คีย์-ค่า โดยที่คีย์หมายถึงชื่อที่กำหนดให้กับอ็อบเจ็กต์ และค่าหมายถึงคุณสมบัติที่ใช้ระบุอ็อบเจ็กต์นั้นได้อย่างเฉพาะเจาะจงภายในหน้าเว็บ
ต่อไปนี้เป็นประเภทของที่เก็บวัตถุที่สามารถสร้างได้ใน Selenium เว็บไดร์เวอร์
- พื้นที่เก็บข้อมูลวัตถุโดยใช้ไฟล์คุณสมบัติ
- พื้นที่เก็บข้อมูลวัตถุโดยใช้ไฟล์ XML
Selenium พื้นที่เก็บข้อมูลวัตถุไดรเวอร์เว็บโดยใช้ไฟล์คุณสมบัติ
ในแนวทางนี้ ไฟล์คุณสมบัติคือไฟล์ข้อความที่จัดเก็บข้อมูลในรูปแบบคู่คีย์-ค่า บทช่วยสอนด้านล่างนี้จะกล่าวถึงหัวข้อต่อไปนี้
ขั้นตอนที่ 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) สำหรับบทช่วยสอนนี้ จะใช้เว็บไซต์สาธิตต่อไปนี้:
https://demo.guru99.com/test/guru99home/นี่คือสถานการณ์ทดสอบ:
- คลิกที่ลิงก์ การทดสอบบนมือถือโดยใช้ XPATH
- ย้อนกลับ
- ป้อนข้อมูลลงในช่องข้อความอีเมลโดยใช้รหัสประจำตัว
- คลิกที่ปุ่มลงทะเบียนโดยใช้ ID
ขั้นตอนที่ 3) อ่านข้อมูลจากไฟล์คุณสมบัติ
- การอ่านข้อมูลจากไฟล์คุณสมบัติสามารถทำได้โดยใช้คลาส Properties ที่มีอยู่ในแพ็กเกจ java.util
- ในขั้นต้น จำเป็นต้องสร้างอ็อบเจ็กต์ของคลาส Properties ดังต่อไปนี้
Properties obj = new Properties();
- เราจำเป็นต้องสร้างอ็อบเจ็กต์ของคลาส FileInputStream โดยระบุพาธไปยังไฟล์คุณสมบัติ
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
- การอ่านข้อมูลจากไฟล์คุณสมบัติสามารถทำได้โดยใช้เมธอด `load` ที่มีอยู่ในคลาส `Properties` ในภาษา Java โค้ดด้านล่างแสดงวิธีการใช้งานเมธอด `load`
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("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); // Navigate 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
ด้านล่างนี้คือรูปแบบของไฟล์ 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 path ของโปรเจ็กต์ก่อนดำเนินการเขียนโค้ดต่อไป
- 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("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(); } }
ดาวน์โหลด WebDriver Eclipse โครงการ













