Java+Selenium 기반 WebUI 자동화 테스트 프레임워크 (13) ----- 기본 페이지 클래스 BasePage(Excel)
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 기반 읽기 등을 쓸 수 있다.세심한 구두는 내가 한 종류만 쓰고 읽는 방식을 매개 변수로 넣고 읽는 방식의 매개 변수에 따라 내가 원하는 베이스 페이지를 정의할 수 있는지 발견할 수 있다.그럼요.모두가 스스로 확장할 수 있으니, 나는 여기서 군더더기 말하지 않겠다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.