ที่เก็บวัตถุใน Selenium (ไฟล์ XML และคุณสมบัติ)

พื้นที่เก็บข้อมูลวัตถุคืออะไร?

ที่เก็บอ็อบเจ็กต์คือที่เก็บข้อมูลทั่วไปสำหรับอ็อบเจ็กต์ทั้งหมด ใน Selenium บริบทของ WebDriver โดยทั่วไปออบเจ็กต์จะเป็นตัวระบุตำแหน่งที่ใช้ในการระบุองค์ประกอบเว็บโดยไม่ซ้ำกัน

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

ประเภทของที่เก็บวัตถุใน Selenium เว็บไดร์เวอร์

Selenium WebDriver ไม่มีพื้นที่เก็บข้อมูลวัตถุที่สร้างขึ้นตามค่าเริ่มต้น อย่างไรก็ตาม ที่เก็บอ็อบเจ็กต์สามารถสร้างได้โดยใช้วิธีจับคู่คีย์-ค่า โดยที่คีย์อ้างถึงชื่อที่กำหนดให้กับอ็อบเจ็กต์ และค่าอ้างถึงคุณสมบัติที่ใช้ในการระบุอ็อบเจ็กต์ภายในเว็บเพจโดยไม่ซ้ำกัน

ต่อไปนี้เป็นประเภทของที่เก็บวัตถุที่สามารถสร้างได้ใน Selenium เว็บไดร์เวอร์

  1. พื้นที่เก็บข้อมูลวัตถุโดยใช้ไฟล์คุณสมบัติ
  2. พื้นที่เก็บข้อมูลวัตถุโดยใช้ไฟล์ XML

Selenium พื้นที่เก็บข้อมูลวัตถุไดรเวอร์เว็บโดยใช้ไฟล์คุณสมบัติ

ในแนวทางนี้ ไฟล์คุณสมบัติคือไฟล์ข้อความที่จัดเก็บข้อมูลในรูปแบบของคู่คีย์-ค่า บทช่วยสอนด้านล่างนี้จะกล่าวถึงหัวข้อต่อไปนี้

ขั้นตอนที่ 1) การสร้างไฟล์คุณสมบัติใน Eclipse

  1. ในการเริ่มต้น จำเป็นต้องสร้างโครงสร้างโครงการ Java ด้านล่างใน Eclipse ชื่อโครงการและชื่อแพ็กเกจสามารถเป็นชื่อที่ถูกต้องได้

การสร้างไฟล์คุณสมบัติใน Eclipse

  1. คลิกขวาที่โฟลเดอร์โปรเจ็กต์หลักแล้วเลือกใหม่ -> อื่น ๆ

การสร้างไฟล์คุณสมบัติใน Eclipse

  1. ในหน้าต่างถัดไป เลือกทั่วไป -> ไฟล์ และคลิกที่ปุ่ม 'ถัดไป'

การสร้างไฟล์คุณสมบัติใน Eclipse

  1. ระบุชื่อไฟล์ที่ถูกต้องพร้อมนามสกุล '.properties' ในหน้าต่างทรัพยากรไฟล์ใหม่ และคลิกที่ปุ่ม 'เสร็จสิ้น'

การสร้างไฟล์คุณสมบัติใน Eclipse

  1. ไฟล์ชื่อ 'application.properties' จะต้องแสดงบนโครงสร้างโครงการ

การสร้างไฟล์คุณสมบัติใน Eclipse

ขั้นตอนที่ 2) จัดเก็บข้อมูลลงในไฟล์คุณสมบัติ

  1. ข้อมูลจะถูกจัดเก็บไว้ในไฟล์คุณสมบัติในรูปแบบของคู่คีย์-ค่า โดยที่คีย์จะไม่ซ้ำกันทั่วทั้งไฟล์
  2. เราจะพยายามใช้ไฟล์คุณสมบัติเพื่อระบุองค์ประกอบเว็บโดยใช้ค่าตัวระบุตำแหน่ง
  3. เปิดไฟล์ 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) อ่านข้อมูลจากไฟล์คุณสมบัติ

  1. การอ่านข้อมูลจากไฟล์คุณสมบัติสามารถทำได้โดยใช้คลาสคุณสมบัติในตัวที่ให้ไว้ในแพ็คเกจ java.util
  2. เริ่มแรกจำเป็นต้องสร้างอ็อบเจ็กต์ของคลาส Properties ดังต่อไปนี้
  Properties obj = new Properties();
  1. เราจำเป็นต้องสร้างวัตถุของคลาส FileInputStream ด้วยเส้นทางไปยังไฟล์คุณสมบัติ
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
  1. การอ่านข้อมูลจากไฟล์คุณสมบัติสามารถทำได้โดยใช้วิธีการโหลดที่นำเสนอโดยคลาสคุณสมบัติใน 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 ที่ใช้สร้างเว็บเพจ ด้านล่างนี้คือรายการหัวข้อที่จะกล่าวถึง

ขั้นตอนที่ 1) การสร้างไฟล์ XML ใน Eclipse

  1. จำเป็นต้องสร้างโครงสร้างโปรเจ็กต์ Java ด้านล่าง Eclipse.

การสร้างไฟล์ XML ใน Eclipse

  1. คลิกขวาที่โฟลเดอร์โปรเจ็กต์ เลือก New -> Other

การสร้างไฟล์ XML ใน Eclipse

  1. เลือกไฟล์ XML ภายในโฟลเดอร์ XML และคลิกที่ปุ่ม 'ถัดไป'

การสร้างไฟล์ XML ใน Eclipse

  1. ป้อนชื่อไฟล์ XML ที่ถูกต้องและคลิกที่ปุ่ม 'เสร็จสิ้น'

การสร้างไฟล์ XML ใน Eclipse

  1. ไฟล์ XML จะถูกเพิ่มลงในโฟลเดอร์โครงการดังที่แสดงด้านล่าง

การสร้างไฟล์ XML ใน Eclipse

ขั้นตอนที่ 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

การจัดเก็บข้อมูลบนไฟล์ XML

ในแท็บการออกแบบ คุณจะเห็น

การจัดเก็บข้อมูลบนไฟล์ 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
    1. พื้นที่เก็บข้อมูลวัตถุโดยใช้ไฟล์คุณสมบัติ
    2. พื้นที่เก็บข้อมูลวัตถุโดยใช้ไฟล์ XML
  • ไฟล์คุณสมบัติเป็นไฟล์ข้อความที่ข้อมูลถูกจัดเก็บในรูปแบบของคู่คีย์-ค่า
  • รูปแบบไฟล์ XML จะจำลองรูปแบบ HTML ที่ใช้สร้างเว็บเพจ