登录脚本重构Element
登录脚本重构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的更多相关文章
- 登录脚本重构by封装
package com.gubai.selenium; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; imp ...
- web 自动化测试 selenium基础到应用(目录)
第一章 自动化测试前提及整体介绍 1-1功能测试和自动化测试的区别 1-2自动化测试流程有哪些 1-3自动化测试用例和手工用例的区别 1-4 自动化测试用例编写 1-5 selenium的优势以及 ...
- element 给table的个别表格框添加样式 ---重构里面的组件
<el-table ref="singleTable" :show-header='false' :data="tableData" align='cen ...
- 原生JS实现全屏切换以及导航栏滑动隐藏及显示——重构前
思路分析: 向后滚动鼠标滚轮,页面向下全屏切换:向前滚动滚轮,页面向上全屏切换.切换过程为动画效果. 第一屏时,导航栏固定在页面顶部,切换到第二屏时,导航条向左滑动隐藏.切换回第一屏时,导航栏向右滑动 ...
- CSS代码重构与优化之路
作者:@狼狼的蓝胖子 网址:http://www.cnblogs.com/lrzw32/p/5100745.html 写CSS的同学们往往会体会到,随着项目规模的增加,项目中的CSS代码也会越来越多, ...
- Hybrid框架UI重构之路:五、前端那点事儿(HTML、CSS)
上文回顾 :Hybird框架UI重构之路:四.分而治之 这里讲述在开发的过程中,一些HTML.CSS的关键点. 单页模式的页面结构 在单页模式中,弱化HTML的概念,把HTML当成一个容器,BODY中 ...
- Hybrid框架UI重构之路:三、工欲善其事,必先利其器
上文回顾:Hybird框架UI重构之路:二.事出有因 工欲善其事,必先利其器,事是重构的目标,器是开发环境. 这篇文章将讲述重构时的UI框架的目录结构,且需要使用的开发工具. 目录结构 demo : ...
- CSS代码重构
CSS代码重构的目的 我们写CSS代码时,不仅仅只是完成页面设计的效果,还应该让CSS代码易于管理,维护.我们对CSS代码重构主要有两个目的:1.提高代码性能2.提高代码的可维护性 提高代码性能 提高 ...
- 无废话网页重构系列——(6)HTML主干结构:站点(site)、页面(page)
本文作者:大象本文地址:http://www.cnblogs.com/daxiang/p/4653546.html 在分析和切出设计稿,以及部署项目目录文件后,开始写HTML Demo. 首先,弄出H ...
随机推荐
- Oracle :修改数据库服务器字符集
最近,有现场反应,程序显示乱码.感觉很奇怪,该系统已经卖出去无数了.肯定是现场数据库字符集有问题,经过查看, 现场环境: window系统,oracle10g. 我们要求的数据库字符集是AL32UTF ...
- 转:创建表空间,删除后再次创建,报错ORA-01119
原文:http://www.it2down.com/it-oracle-develop/57816.htm 我是个ORACLE新手,在删除了表空间,然后再创建怎么会提示出错? 删除表空间:drop t ...
- hdu 1075 What Are You Talking About(map)
题意:单词翻译 思路:map #include<iostream> #include<stdio.h> #include<string.h> #include< ...
- mysql导出 数据库字典
USE information_schema; --切记这里不能忘掉 SELECT T.TABLE_SCHEMA AS '数据库名称', T.TABLE_NAME AS '表名', T.TABLE_T ...
- Cocoapods fatal: Remote branch #{s.version} not found in upstream origin
遇到一个错误: fatal: Remote branch #{s.version} not found in upstream origin 解决办法 网上搜了很多,都无效 可能仅适用我的情况,分享出 ...
- 【弱的C艹之路。。未完待续】
[弱的C艹之路] 数据范围 unsigned int 0-4294967295 int 2147483648-2147483647 unsigned long 0-4294967295 long 21 ...
- UIScrollView控件实现图片轮播
http://www.cnblogs.com/dyf520/p/3805297.html 一.实现效果 实现图片的自动轮播 二.实现代码 storyboard中布局 代码: 1 ...
- 前端开发常用cmd命令
windows打开命令行 开始->运行->键入cmd 也可通过附件查找到命令提示符,右键属性为其设置快捷键 快捷键 更改路径 d: // 切换到d盘 cd <fold ...
- selenium中Xpath和CSS Selector的使用方法
一.selenium中Xpath的使用方法 1. 什么是xpath? Xpath是XML的路径语言,通俗一点讲就是通过元素的路径来查找这个标签元素 2. 练习Xpath的工具 火狐浏览器,下载插件Fi ...
- CH#56C(LCA+dfs序)
题目传送门 性质是:把节点dfs序以后,异象石按这个序号排序,然后相邻两两求树上距离,这些距离的和除以二就是最小斯坦纳树. 插入删除的具体操作是根据我们上述性质,用一个set维护dfn,比如插入x,则 ...