개체 저장소 Selenium (XML 및 속성 파일)

개체 저장소란 무엇입니까?

개체 저장소는 모든 개체에 대한 공통 저장소 위치입니다. ~ 안에 Selenium WebDriver 컨텍스트에서 개체는 일반적으로 웹 요소를 고유하게 식별하는 데 사용되는 로케이터입니다.

객체 저장소 사용의 주요 이점은 테스트 케이스에서 객체를 분리한다는 것입니다. 하나의 웹 요소의 로케이터 값이 변경되면 로케이터가 사용된 모든 테스트 케이스를 변경하는 대신 개체 저장소만 변경하면 됩니다. 객체 저장소를 유지하면 프레임워크 구현의 모듈성이 향상됩니다.

개체 저장소 유형 Selenium 웹 드라이버

Selenium WebDriver는 기본적으로 내장 개체 저장소를 제공하지 않습니다. 그러나 개체 저장소는 키-값 쌍 접근 방식을 사용하여 구축할 수 있습니다. 여기서 키는 개체에 지정된 이름을 나타내고 값은 웹 페이지 내에서 개체를 고유하게 식별하는 데 사용되는 속성을 나타냅니다.

더 폴로wing 다음에서 생성할 수 있는 개체 저장소 유형은 다음과 같습니다. Selenium 웹드라이버.

  1. 속성 파일을 사용하는 개체 저장소
  2. XML 파일을 사용하는 개체 저장소

Selenium 속성 파일을 사용하는 웹 드라이버 개체 저장소

이 접근 방식에서 속성 파일은 데이터가 키-값 쌍 형식으로 저장되는 텍스트 파일입니다. 아래 튜토리얼에서는 다음 내용을 다룰 것입니다.wing 주제.

1단계) 속성 파일 생성 eclipse

  1. 우선, 아래의 Java 프로젝트 구조를 생성해야 합니다. eclipse. 프로젝트 이름과 패키지 이름은 유효한 이름이면 됩니다.

속성 파일 생성 Eclipse

  1. 기본 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기-> 기타를 선택합니다.

속성 파일 생성 Eclipse

  1. 다음 창에서 일반 -> 파일을 선택하고 '다음' 버튼을 클릭하세요.

속성 파일 생성 Eclipse

  1. 새 파일 리소스 창에서 확장자가 '.properties'인 유효한 파일 이름을 제공하고 '마침' 버튼을 클릭하세요.

속성 파일 생성 Eclipse

  1. 'application.properties'라는 파일은 표시되어야 합니다.yed 프로젝트 구조에

속성 파일 생성 Eclipse

2단계) 속성 파일에 데이터 저장

  1. 데이터는 키-값 쌍의 형태로 속성 파일에 저장되며 키는 파일 전체에서 고유합니다.
  2. 로케이터 값을 사용하여 웹 요소를 식별하기 위해 속성 파일을 사용해 보겠습니다.
  3. 다음에서 application.properties 파일을 엽니다. Eclipse 그리고 팔로우를 저장하세요wing 데이터
MobileTesting=//a[text()='MOBILE TESTING']
EmailTextBox = philadelphia-field-email
SignUpButton = philadelphia-field-submit

속성 파일에 데이터 저장

4) 이 튜토리얼에서는 다음과 같습니다.wing 데모 웹사이트가 사용되고 있습니다:

http://demo.guru99.com/test/guru99home/. 테스트 시나리오는 다음과 같습니다.

  • XPATH를 사용하여 모바일 테스트 링크를 클릭하세요.
  • 뒤로 탐색
  • e에 데이터 입력mail 본문box 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 클래스에서 제공하는 로드 메서드를 사용하여 수행할 수 있습니다. 아래 코드는 로드 메소드의 사용법을 보여줍니다.
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 XML 파일을 사용하는 WebDriver 개체 저장소

XML은 Extensible Markup Language의 약자입니다. XML 파일은 DOM(Document Object Model)을 기본 구조로 사용합니다. XML 파일 형식은 웹페이지가 구성된 HTML 형식을 복제합니다. 다음은 다룰 주제 목록입니다.

1단계) XML 파일 생성 eclipse

  1. 아래 Java 프로젝트 구조를 생성해야 합니다. Eclipse.

XML 파일 생성 Eclipse

  1. 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기 -> 기타를 선택합니다.

XML 파일 생성 Eclipse

  1. XML 폴더 내에서 XML 파일을 선택하고 '다음' 버튼을 클릭하세요.

XML 파일 생성 Eclipse

  1. 유효한 XML 파일 이름을 입력하고 '마침' 버튼을 클릭하세요.

XML 파일 생성 Eclipse

  1. 아래와 같이 프로젝트 폴더에 XML 파일이 추가됩니다.

XML 파일 생성 Eclipse

2단계) XML 파일에 데이터 저장

데이터는 DOM(Document Object Model) 형식으로 XML 파일에 저장할 수 있습니다. 단순화를 위해 아래 테스트 시나리오를 예로 사용할 수 있습니다.

  • XPATH를 사용하여 모바일 테스트 링크를 클릭하세요.
  • 홈 페이지로 돌아가기
  • e에 데이터 입력mail 본문box 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. Java에 내장된 'dom4j' 클래스를 사용하여 XML 파일에서 데이터를 읽을 수 있습니다. 코드를 진행하기 전에 아래 JAR 파일을 프로젝트의 빌드 경로에 추가해야 합니다.

  • 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 객체를 생성하고 이를 SAXReader 클래스의 'read' 메소드에 매개변수로 전달해야 합니다. XML 파일 데이터를 성공적으로 읽으면 'selectSingleNode' 메소드를 사용하여 XML 문서의 개별 노드에 액세스할 수 있습니다.

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 웹드라이버

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();				

	}		
}		

웹드라이버 다운로드 Eclipse 프로젝트

요약

  • 개체 저장소는 모든 개체에 대한 공통 저장 위치입니다.
  • Selenium WebDriver는 기본적으로 내장 개체 저장소를 제공하지 않습니다.
  • 2가지 유형의 개체 저장소를 생성할 수 있습니다. Selenium
    1. 속성 파일을 사용하는 개체 저장소
    2. XML 파일을 사용하는 개체 저장소
  • 속성 파일은 데이터가 키-값 쌍의 형태로 저장되는 텍스트 파일입니다.
  • XML 파일 형식은 웹페이지가 구성된 HTML 형식을 복제합니다.