为什么80%的码农都做不了架构师?>>>   

最近总是频繁登录各个系统,密码又是系统自动生成乱七八糟,毫无章法的字符串,难以记忆。每登一次必须查找一番,然后copy之,实在不堪其扰。所以就干脆写一个脚本自动化登录一下。

1.通过配置文件设置url,用户名、密码、提交按钮的网页元素,用户名,密码。

2.多线程方式,3秒不输入,进行默认登录。

项目需要用到selenium-server-standalone-2.53.0.jar包。下载Selenium-server-standalone,Selenium-java(这个我没有使用也可以运行)

通过批处理(因为公司有代理,设置网络环境是通过批处理命令设置的)执行,运行如下图

主要代码如下:

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Properties;
import java.util.Scanner;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;/** * @author 苏宝伢 E-mail:by.su@qq.com * @version 创建时间: 2017年11月01日 上午11:03:18*/
public class LoginAdmin extends Thread{static boolean flag = true;static int chooseNo = 0;public static void main(String[] args){System.out.println("请输入需要登录的系统编号,3秒内不输入默认1:");System.out.println("1.后管平台;2.testlink;3.jira-PASTOCK;4.jira-oas;5.短信平台;6.pafa5运管平台。");System.setProperty("webdriver.chrome.driver", "D:/bysu/interfaceAuto/chromedriver.exe");LoginAdmin t1 = new LoginAdmin();t1.start();for(int i=3;i>0;i--){try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("倒计时" + i + "秒");if(i==3){flag = false;}}WebDriver driver = new ChromeDriver();loginStart(chooseNo,"D:/selenium/loginData.properties",driver);System.exit(0);//如果没有这句,默认登录的时候,scanner还在阻塞的线程,java程序不会自动结束。}public void run(){Scanner scan = new Scanner(System.in);while(flag){chooseNo = scan.nextInt();}scan.close();}public static void loginStart(int num,String path,WebDriver driver){String[] elements = getPropertiesValue(chooseUrl(num),path).replace("\"","").split(",");String url = elements[0];String userName = elements[1];String userNameContent = elements[2];String userPasswd = elements[3];String userPasswdContent = elements[4];String submitElement = elements[5];driver.get(url);try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}driver.findElement(By.xpath(userName)).sendKeys(userNameContent);driver.findElement(By.xpath(userPasswd)).sendKeys(userPasswdContent);driver.findElement(By.xpath(submitElement)).click();}//返回需要登录的系统名称public static String chooseUrl(int chooseNo){switch(chooseNo){case 1://antreturn "ant";case 2://testlinkreturn "testlink";case 3://jira-PASTOCKreturn "PASTOCK";case 4://jira-oasreturn "oas";case 5://smsreturn "sms";case 6://pafa5return "pafa5";default:return "ant";}}//获取配置文件内容public static HashMap<String,String> readProperties(String filePath){Properties pp = new Properties();HashMap<String,String>  strMap = new HashMap<>();FileInputStream fin = null;try {fin = new FileInputStream(filePath);pp.load(fin);} catch (IOException e) {e.printStackTrace();}Enumeration enums = pp.propertyNames(); while(enums.hasMoreElements()){String strKey = (String)enums.nextElement();strMap.put(strKey, pp.getProperty(strKey));}return strMap;}//根据指定key获取valuepublic static String getPropertiesValue(String key,String path){HashMap<String,String> mpValue = readProperties(path);return mpValue.get(key);}
}

配置文件格式如下:

ant="https://soasad..,/html/body/div/div[3]/div[1]/table/tbody/tr[1]/td[2]/input,SU...,/html/body/div/div[3]/div[1]/table/tbody/tr[2]/td[2]/input,W2yehW49,/html/body/div/div[3]/div[3]/a"
testlink="http://tm....,//*[@id='login'],su...,//*[@id='login_div']/form/p[2]/input,feQ44Rs70.2,//*[@id='login_div']/form/input[5]"
PASTOCK="http://jira-stock...,//*[@id='login-form-username'],su...,//*[@id='login-form-password'],feQ44Rs7..2,//*[@id='login-form-submit']"
oas="http://jira-stock....,//*[@id='login-form-username'],su...,//*[@id='login-form-password'],feQ44Rs7..2,//*[@id='login-form-submit']"
sms="http://pscptest...,//*[@id='j_username'],XUD..5,//*[@id='j_password'],h..4,//*[@id='login_form']/table/tbody/tr[1]/td[3]/input"
pafa5="http://sis-omm-mc...,//*[@id='uname'],CH..8,//*[@id='password'],...,//*[@id='ext-gen1018']/div/div/div/a"

转载于:https://my.oschina.net/bysu/blog/1560059

java+selenium实现web多系统登录相关推荐

  1. 计算机毕业设计Java新冠疫苗接种预约系统登录(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java新冠疫苗接种预约系统登录(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java新冠疫苗接种预约系统登录(源码+系统+mysql数据库+Lw文档) 源码下载地址:htt ...

  2. Java+Selenium实现QQ邮箱自动登录、发邮件与退出

    初学selenium,用最近所学知识写了QQ邮箱自动登录.发送邮件.退出,算是对自己学习的知识的巩固吧.如果哪里有不足之处,就请各位告诉我,指导我一下,非常感谢. 登录页面 在网页登录QQ邮箱的时候, ...

  3. Java+selenium简单实现web自动化测试

    最近在转行软件测试,有点艰难,为了提高自己的竞争力,只有不断的学习,学习多一点技术和知识. 这次要学习的是Java+Selenium的Web自动化测试,虽然这个自动化测试技术已经少有人用,或者说已经没 ...

  4. 基于java的网上花店销售系统_基于web的花店销售系统的设计与实现

    基于web的花店销售系统的设计与实现(论文13000字) 摘要:本系统是一个相对简单的基本应用系统,主要满足传统的花店运营需要,将自己的销售渠道扩展到网上,通过简单的管理,提供给最终消费者产品的展现. ...

  5. java实现Selenium自动化测试web

    自动化测试 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程.通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较.在此过程中 ...

  6. 基于Java毕业设计新冠疫苗接种预约系统登录源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计新冠疫苗接种预约系统登录源码+系统+mysql+lw文档+部署软件 基于Java毕业设计新冠疫苗接种预约系统登录源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构 ...

  7. 关于使用selenium工具调用Firefox浏览器登录淘宝、京东web端的试验

    ** 关于使用selenium工具调用Firefox浏览器登录淘宝.京东web端的试验 ** 1.环境配置(软件安装相关知识大家可在网上查找) 以下是我使用的版本: Firefox 24.0 sele ...

  8. 基于Java毕业设计校园教务系统登录源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计校园教务系统登录源码+系统+mysql+lw文档+部署软件 基于Java毕业设计校园教务系统登录源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开 ...

  9. ssh+mysql实现的Java web论坛系统源码

    今天给大家来演示一下一款有spring+struts2+hibernate+mysql实现的Java web论坛系统源码,本系统功能类似与csdn论坛,用户发帖时可以设置积分,当结帖时可以选择给评论的 ...

  10. 计算机毕业设计Java校园教务系统登录(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java校园教务系统登录(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java校园教务系统登录(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

最新文章

  1. MSSQL 2008里事务的一个问题
  2. shell脚本的两种执行方式区别举例
  3. boost::remove相关的测试程序
  4. [No0000DB]C# FtpClientHelper Ftp客户端上传下载重命名 类封装
  5. 【C语言】第九章 复杂数据类型与结构体 题解
  6. 面试官:说一下JVM常用垃圾回收器的特点、优劣势、使用场景和参数设置
  7. LVS_DR实现过程...
  8. mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)
  9. mysql中没having_MySQL中无GROUP BY直接HAVING的问题
  10. Oracle之自定义函数
  11. 认识接口(Interface)设计
  12. socket中的recv函数
  13. 600集Python从入门到精通教程(懂中文就能学会)
  14. Android封装含有通用标题栏的基类BaseActivity
  15. 第一财经专访李旭阳:反诈骗、管控金融风险,腾讯安全发力联邦学习技术
  16. Python实战之tkinter库画图,用canver画布教你画会动的哆啦A梦
  17. 计算机新生导论感言,大学生感言与寄语新生
  18. 怎么限制使用计算机软件,如何禁止计算机用户使用IE浏览器
  19. 区块链开发之Metamask使用调研
  20. logstash读取Elasticsearch数据保存为json,logstash接收log数据写入kafka生产者

热门文章

  1. nginx 日志和监控
  2. 关于内存地址和内存空间的理解。
  3. Oracle case用法
  4. Excel表中的数据导入到数据库中
  5. (转)AppDomain 和动态加载
  6. Python网络爬虫与信息提取 - requests库入门
  7. 2014年07月21日
  8. mysql 各种字段取值范围 2009-12-23
  9. leetcode(128)最长连续序列
  10. 无法连接 Plugins Market 失效的日子