java界面ui自动化_基于Java+Selenium的WebUI自动化测试框架(九)-----基础页面类(BasePage)...

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;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值