packagewebui.xUtils;importjava.awt.AWTException;importjava.awt.Robot;importjava.awt.event.InputEvent;importjava.util.HashMap;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.testng.Reporter;//基础页面类
public class BasePageX extendsUIExcutorImpl {protectedWebDriver driver;protectedString pageName;//页面名称
protectedString xmlPath;//页面元素配置文件路径
protected HashMappositionMap;//存储页面元素信息
protected logUtil log = new logUtil(BasePageX.class);
Position position= null;public BasePageX(WebDriver driver, String pageName,String xmlName) throwsException {super(driver);this.driver =driver;this.pageName = pageName; //获取page.xml路径,page.xml在同级目录
xmlPath = this.getClass().getResource("").getPath() +xmlName;
positionMap=XmlReadUtil.readXMLDocument(xmlPath, pageName);
log.info("成功读取:" + pageName + "页面信息");
Reporter.log("成功读取:" + pageName + "页面信息");
}public void click(String positionName) throwsException {super.click(getPosition(positionName));
}public void sendKey(String positionName, String value) throwsException {super.sendKey(getPosition(positionName), value);
}public String getText(String positionName) throwsException {return super.getText(getPosition(positionName));
}public String getAttribute(String positionName,String value) throwsException {return super.getAttribute(getPosition(positionName), value);
}public WebElement getElement(String positionName) throwsException {return super.getElement(getPosition(positionName));
}public boolean isElementDisplayed(String positionName) throwsException {return super.isElementDisplayed(getPosition(positionName));
}
@Overridepublic voidswitchWindow(String title) {super.switchWindow(title);
log.info("切换窗口");
Reporter.log("切换窗口"+title);
}public voidswitchFrame(String positionName) {super.switchFrame(getPosition(positionName));
log.info("切换frame至:" +positionName);
Reporter.log("切换frame至:" +positionName);
}
@OverridepublicString getAlertText() {return super.getAlertText();
}
//使用Robot强制点击某处坐标,用于无法定位的元素,比如(Object类型的元素)public void mouseMoveClick(int x , int y) throwsAWTException {
Robot rb1= newRobot();
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) throwsException {super.jsClick(getPosition(positionName));
}public void waitElement(String positionName,intsec) {super.waitElement(getPosition(positionName), sec);
}/*根据positionName返回对应的position*/
publicPosition getPosition(String positionName) {
Position position= null;if (positionMap != null) {
position=positionMap.get(positionName);
}if(position ==null) {
log.error("没有找到"+positionName+"页面元素");
Reporter.log("没有找到"+positionName+"页面元素");
}returnposition;
}
}