1、目的
封装就是重构,重构就是通过调整程序代码,但并不改变程序的功能特征,达到改善软件的质量、性能,使程序的设计模式和架构更趋合理,更容易被理解,提高软件的扩展性和维护性。改进软件设计、更容易理解、提高效率
2、封装By
/**
* 封装By
* @param type
* @param local
* @return
*/
public static By byStr(String type,String local){
if (type.equals("id")){
return By.id(local);
}else if (type.equals("name")){
return By.name(local);
}else if (type.equals("className")){
return By.className(local);
}else if (type.equals("xpath")){
return By.xpath(local);
}else {
return By.cssSelector(local);
}
}
3、登录脚本
/**
* 慕课网登录
*/
public class LoginDemo {
public WebDriver webDriver;
//driver初始化配置
@BeforeTest
public void initDriver(){
System.setProperty("webdriver.chrome.driver","E:\\study\\webuitest\\webuitest\\src\\driver\\chromedriver.exe");
webDriver = new ChromeDriver();
webDriver.get("https://www.imooc.com");
webDriver.manage().window().maximize();
//点击首页登录
webDriver.findElement(By.id("js-signin-btn")).click();
}
/**
* 登录
*/
@Test
public void loginTest() throws InterruptedException {
String js = "js-signin-btn";
String usename = "xxxxxx";
String password = "xxxxxx";
String nameElement = "email";
String pwdElement = "password";
String logElement = "moco-btn";
String headerElement = "header-avator";
String claElement = "name";
String id = "id";
String name = "name";
String classname = "className";
//点击首页登录
webDriver.findElement(byStr(id,js)).click();
Thread.sleep(2000);
WebElement useElement = webDriver.findElement(byStr(name,nameElement));
//检测用户名输入框元素是否可见 true
System.out.println("用户名输入框元素是否可见:" + useElement.isDisplayed());
WebElement passElement = webDriver.findElement(byStr(name,pwdElement));
System.out.println("密码输入框元素是否可见:" + passElement.isDisplayed());
//获取登录按钮元素
WebElement loginElement = webDriver.findElement(byStr(classname,logElement));
//输入用户名密码
useElement.sendKeys(usename);
passElement.sendKeys(password);
//点击登录
loginElement.click();
Thread.sleep(3000);
//首页获取id为"header-avator"的状态
WebElement element1 = webDriver.findElement(byStr(id,headerElement));
System.out.println("检测元素是否可见:" + element1.isDisplayed());;
//鼠标悬停在右上角
Actions actions = new Actions(webDriver);
actions.moveToElement(element1).perform();
//获取当前元素的文本值
String userInfo = webDriver.findElement(byStr(classname,claElement)).getText();
System.out.println(userInfo);
if ("慕先生1263741".equals(userInfo)){
System.out.println("登录成功");
}else {
System.out.println("登录失败");
}
}