登录脚本重构Element

package com.gubai.selenium;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions; public class Login {
public WebDriver driver;
public void InitDriver() {
String url = "http://www.imooc.com/";
System.setProperty("webdriver.chrome.driver", "C:\\driver\\chromedriver.exe");
driver = new ChromeDriver();
driver.get(url);
driver.manage().window().maximize();
this.elemnet(By.id("js-signin-btn")).click();
} public void loginscript() throws Exception {
this.InitDriver();
String username = "18513199586";
String emailElement = "email";
String userBy = "name";
String userpass = "111111";
String passBy = "name";
String passwordElement = "password";
String buttonElement = "btn-red";
String buttonBy = "className";
String headerElement = "header-avator";
String nameElement = "name";
String headerBy = "id";
String nameinfo = "className";
Thread.sleep(3000);
WebElement user = this.elemnet(this.byStr(userBy, emailElement));
//this.elemnet(this.byStr(userBy, emailElement));
user.isDisplayed();
WebElement password = this.elemnet(this.byStr(passBy,passwordElement));
password.isDisplayed();
WebElement loginButton = this.elemnet(this.byStr(buttonBy,buttonElement));
loginButton.isDisplayed();
user.sendKeys(username);
password.sendKeys(userpass);
loginButton.click();
Thread.sleep(3000);
WebElement header = this.elemnet(this.byStr(headerBy, headerElement));
header.isDisplayed();
Actions actions = new Actions(driver);
actions.moveToElement(header).perform();;
String userInfo = this.elemnet(this.byStr(nameinfo, nameElement)).getText();
System.out.println(userInfo);
if(userInfo.equals("mushishi_xu1")) {
System.out.print("登陆成功");
}else {
System.out.print("登录失败");
}
}
/**封装By by **/
public By byStr(String by, String local){
if(by.equals("id")) {
return By.id(local);
}else if(by.equals("name")){
return By.name(local);
}else if(by.equals("className")){
return By.className(local);
}else if(by.equals("xpath")){
return By.className(local);
}else{
return By.xpath(local);
}
}
/**
* 封装Element
* **/
public WebElement elemnet(By by) {
WebElement ele = driver.findElement(by);
return ele;
}
public static void main(String[] args) throws Exception{
Login login = new Login();
login.loginscript();
}
}

登录脚本重构Element的更多相关文章

  1. 登录脚本重构by封装

    package com.gubai.selenium; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; imp ...

  2. web 自动化测试 selenium基础到应用(目录)

    第一章   自动化测试前提及整体介绍 1-1功能测试和自动化测试的区别 1-2自动化测试流程有哪些 1-3自动化测试用例和手工用例的区别 1-4 自动化测试用例编写 1-5 selenium的优势以及 ...

  3. element 给table的个别表格框添加样式 ---重构里面的组件

    <el-table ref="singleTable" :show-header='false' :data="tableData" align='cen ...

  4. 原生JS实现全屏切换以及导航栏滑动隐藏及显示——重构前

    思路分析: 向后滚动鼠标滚轮,页面向下全屏切换:向前滚动滚轮,页面向上全屏切换.切换过程为动画效果. 第一屏时,导航栏固定在页面顶部,切换到第二屏时,导航条向左滑动隐藏.切换回第一屏时,导航栏向右滑动 ...

  5. CSS代码重构与优化之路

    作者:@狼狼的蓝胖子 网址:http://www.cnblogs.com/lrzw32/p/5100745.html 写CSS的同学们往往会体会到,随着项目规模的增加,项目中的CSS代码也会越来越多, ...

  6. Hybrid框架UI重构之路:五、前端那点事儿(HTML、CSS)

    上文回顾 :Hybird框架UI重构之路:四.分而治之 这里讲述在开发的过程中,一些HTML.CSS的关键点. 单页模式的页面结构 在单页模式中,弱化HTML的概念,把HTML当成一个容器,BODY中 ...

  7. Hybrid框架UI重构之路:三、工欲善其事,必先利其器

    上文回顾:Hybird框架UI重构之路:二.事出有因 工欲善其事,必先利其器,事是重构的目标,器是开发环境. 这篇文章将讲述重构时的UI框架的目录结构,且需要使用的开发工具. 目录结构 demo : ...

  8. CSS代码重构

    CSS代码重构的目的 我们写CSS代码时,不仅仅只是完成页面设计的效果,还应该让CSS代码易于管理,维护.我们对CSS代码重构主要有两个目的:1.提高代码性能2.提高代码的可维护性 提高代码性能 提高 ...

  9. 无废话网页重构系列——(6)HTML主干结构:站点(site)、页面(page)

    本文作者:大象本文地址:http://www.cnblogs.com/daxiang/p/4653546.html 在分析和切出设计稿,以及部署项目目录文件后,开始写HTML Demo. 首先,弄出H ...

随机推荐

  1. 关于JQuery获取元素索引值的理解

    举例: <html> <body> <div id="text"> <div> <a><span>标题一&l ...

  2. skynet实践(8)-接入websocket

    我从开源项目(https://github.com/lipp/lua-websockets,这里我们简称LWS)中抽出了websocket的部分处理,步骤如下: 1)首先是解决LWS的几个依赖问题.L ...

  3. [Java] 继承,隐藏,覆盖,重载,多态,抽象类,接口

    1.子类 class SonClass extends ABC{...} 在子类定义后,子类中就可以直接隐式包含父类的成员变量和方法,而不用再写,这就是使用继承的优点. 子类包含父类的成员,不是子类和 ...

  4. ng2中文文档地址

    https://angular.cn/docs/ts/latest/guide/displaying-data.html

  5. 在linux下用tomcat部署java web项目的过程与注意事项(转)

    在linux下用tomcat部署java web项目的过程与注意事项一.安装JDK到http://www.oracle.com/technetwork/java/javase/downloads/in ...

  6. 用 SDL2 处理精灵图

    上面就是一个精灵图,由多个固定间隔的图标组成.利用精灵图的好处就是不必将图标逐个读入内存进行操作.我们可以将精灵图中需要的部分用一个个矩形截取下来,然后再输出到渲染器上. 环境:SDL2 + VC++ ...

  7. C - Soldier and Cards

    Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Description Two bo ...

  8. 007--linux常用命令nginx和nfs服务

    作业: 集群搭建 1.部署nginx反向代理三个web服务,调度算法使用加权轮询: 2.所有web服务使用共享存储nfs,保证所有web都对其有读写权限,保证数据一致性: 一.nginx服务 1. 先 ...

  9. (水题)洛谷 - P1996 - 约瑟夫问题 - 链表

    https://www.luogu.org/problemnew/show/P1996 试了一下数组实现的双向链表,是挺难用的,估计是应该写个get_next()函数比直接用next数组好. #inc ...

  10. (5)Javascript的表达式

    Javascript的表达式 表达式是一个语句的集合,计算结果是个单一值,然后该结果被javascript归入下列数据类型之一:布尔.数字.字符串.对象等.表达式是具有一定的值,用操作符把常量和变量连 ...