Java+Selenium 기반 WebUI 자동화 테스트 프레임워크 (13) ----- 기본 페이지 클래스 BasePage(Excel)

10649 단어
앞에서 POI를 사용하여 Excel에서 원하는 대로 읽는 방법을 설명했습니다.앞에서 우리가 쓴 BasePageX에 근거하여 우리는 이 "필요에 따라 읽기"를 기반으로 한 BasePage를 쉽게 쓸 수 있다.
package webui.xUtils;

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.util.HashMap;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.testng.Reporter;

public class BasePageE extends UIExcutorImpl{
        protected WebDriver driver;    
        protected String pageName;
        //      
        protected String xmlPath;
        //      
        protected HashMap positionMap;
        //     
        protected logUtil log = new logUtil(BasePageE.class); 
        Position position = null;
        public BasePageE(WebDriver driver, String pageName,String excelpath)  throws Exception {        
            super(driver);
            this.driver = driver;        
            this.pageName = pageName;
            positionMap = ExcelReadUtil.readExcelDocuement(excelpath, pageName);
            log.info(" :" + pageName + " ");
            Reporter.log(" :" + pageName + " ");
            }

        public void click(String positionName) throws Exception {        
            super.click(getPosition(positionName));    
            }     
        public void sendKey(String positionName, String value) throws Exception {        
            super.sendKey(getPosition(positionName), value);            
            }     
        public String getText(String positionName) throws Exception {        
            return super.getText(getPosition(positionName));    
            }     
        public String getAttribute(String positionName,String value) throws Exception {        
            return super.getAttribute(getPosition(positionName), value);    
            } 
        public WebElement getElement(String positionName) throws Exception {        
            return super.getElement(getPosition(positionName));    
            }     
        public boolean isElementDisplayed(String positionName) throws Exception {        
            return super.isElementDisplayed(getPosition(positionName));    
            }     
        @Override
        public void switchWindow(String title) {        
            super.switchWindow(title);    
            log.info(" ");
            Reporter.log(" "+title);
            }     
        public void switchFrame(String positionName) {        
            super.switchFrame(getPosition(positionName));    
            log.info(" frame :" + positionName);
            Reporter.log(" frame :" + positionName);
            }     
        @Override
        public String getAlertText() {
            return super.getAlertText();
        }
        public void mouseMoveClick(int x , int y) throws AWTException {
            Robot rb1 = new Robot();
            rb1.mouseMove(x,y);
            rb1.delay(500);
            rb1.mousePress(InputEvent.BUTTON1_DOWN_MASK);
            rb1.delay(500);
            rb1.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
            rb1.delay(500);
            log.info(" :" + "(" + x +"," + y + ")");
            Reporter.log(" :" + "(" + x +"," + y + ")");
        }
        public void jsClick(String positionName) throws Exception {        
            super.jsClick(getPosition(positionName));    
            }     
        public void waitElement(String positionName,int sec) {
            super.waitElement(getPosition(positionName), sec);
        }

        /**     *  positionName position
        */    
        public Position getPosition(String positionName) {        
            Position position = null;        
            if (positionMap != null) {            
                position = positionMap.get(positionName);        
                }
            if(position ==null) {
                log.error(" "+positionName+" ");
                Reporter.log(" "+positionName+" ");
            }
            return position;    
            }
}

이렇게 하면 우리는 Exce를 사용하여 페이지 요소를 읽는 기초 페이지 클래스를 완성할 수 있다.
여러분이 만약에 이전의 내용을 돌이켜보면 우리가 읽는 방식에 따라 서로 다른 기초 페이지 종류를 쓸 수 있다는 것을 알 수 있습니다.BasePageX----> XML 기반 읽기, BasePageE----> Excel 기반 읽기, 그러면 우리도 BasePageM---> Mysql 기반 읽기, BasePageO---> Oracle 기반 읽기 등을 쓸 수 있다.세심한 구두는 내가 한 종류만 쓰고 읽는 방식을 매개 변수로 넣고 읽는 방식의 매개 변수에 따라 내가 원하는 베이스 페이지를 정의할 수 있는지 발견할 수 있다.그럼요.모두가 스스로 확장할 수 있으니, 나는 여기서 군더더기 말하지 않겠다.
  

좋은 웹페이지 즐겨찾기