一、可自動切換登陸不一樣系統php
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 { public static void main(String[] args) throws InterruptedException { System.out.println("請輸入須要登陸的系統編號:"); System.out.println("1.後管平臺;2.testlink;3.jira-PASTOCK;4.jira-oas;5.短信平臺;6.pafa5運管平臺。"); System.setProperty("webdriver.chrome.driver", "D:/myselenium/selenium-kuanjia2016/chromedriver_win32/chromedriver.exe"); Scanner scan = new Scanner(System.in);//Scanner類能夠直接接收控制檯命令行的輸入 int chooseNo = scan.nextInt();//將輸入信息的下一個標記掃描爲一個 int scan.close(); WebDriver driver = new ChromeDriver(); loginStart(chooseNo,"D:/myselenium/ZDHTest/selenium/loginData.properties",driver); } public static void loginStart(int num,String path,WebDriver driver){ //String[] elements = getPropertiesValue(chooseUrl(num),path).replace("\"","").split(",");//\"是表明轉義即表明一個雙引號 String[] elements = getPropertiesValue(chooseUrl(num),path).split(","); System.out.println(elements[0]); 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: //ant return "ant"; case 2: //testlink return "testlink"; case 3: //jira-PASTOCK return "PASTOCK"; case 4: //jira-oas return "oas"; case 5: //sms return "sms"; case 6: //pafa5 return "pafa5"; default: return "ant"; } } //get properties file content public static HashMap<String,String> readProperties(String filePath){ Properties pp = new Properties(); HashMap<String,String> strMap = new HashMap<String,String>();//HashMap類是用來存放鍵與值的映射 FileInputStream fin = null; try { fin = new FileInputStream(filePath); pp.load(fin); } catch (IOException e) { e.printStackTrace(); } Enumeration enums = pp.propertyNames(); //實現 Enumeration 接口的對象,它生成一系列元素,一次生成一個。連續調用 nextElement 方法將返回一系列的連續元素 while(enums.hasMoreElements()){//hasMoreElements當且僅當此枚舉對象至少還包含一個可提供的元素時,才返回 true;不然返回 false String strKey = (String)enums.nextElement();//nextElement若是此枚舉對象至少還有一個可提供的元素,則返回此枚舉的下一個元素 strMap.put(strKey, pp.getProperty(strKey));//把鍵與值添加到HashMap中--在此映射中關聯指定值與指定鍵。 } return strMap; } //根據指定key獲取value public static String getPropertiesValue(String key,String path){ HashMap<String,String> mpValue = readProperties(path); return mpValue.get(key);//返回指定鍵所映射的值;若是對於該鍵來講,此映射不包含任何映射關係,則返回 null } }
2\批處理LoginAdmin.bathtml
@echo off echo "自動化登陸" javac -encoding utf8 "D:\myselenium\ZDHTest\selenium\LoginAdmin.java" cd "D:\myselenium\ZDHTest\selenium" java LoginAdmin echo "3秒後窗口將關閉...ping -n 3 127.0.0.1 >nul " echo "pause goto 1--這個執行完後不關閉命令窗口" ping -n 3 127.0.0.1 >nul
3\配置文件內容以下:java
ant="https://soasadmin-stg.paic.com.cn/admin/admin/login.html,/html/body/div/div[3]/div[1]/table/tbody/tr[1]/td[2]/input,SUBAOYA853,/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.paic.com.cn/testlink/login.php?note=expired&destination=%2Ftestlink%2Findex.php%3Fcaller%3Dlogin,//*[@id='login'],subaoya023,//*[@id='login_div']/form/p[2]/input,feQ44Rs70112,//*[@id='login_div']/form/input[5]" PASTOCK="http://jira-stock.paic.com.cn:8080/login.jsp?permissionViolation=true&os_destination=%2Fbrowse%2FPASTOCK-1928%3Ffilter%3D-2&page_caps=&user_role=,//*[@id='login-form-username'],subaoya023,//*[@id='login-form-password'],feQ44Rs70112,//*[@id='login-form-submit']" oas="http://jira-stock.paic.com.cn:8080/login.jsp?permissionViolation=true&os_destination=%2Fbrowse%2FOAS-2&page_caps=&user_role=,//*[@id='login-form-username'],subaoya023,//*[@id='login-form-password'],feQ44Rs70112,//*[@id='login-form-submit']" sms="http://pscptest-10.paic.com.cn:42154/pscp/login.jsp#,//*[@id='j_username'],XUDAN005,//*[@id='j_password'],hello1234,//*[@id='login_form']/table/tbody/tr[1]/td[3]/input" pafa5="http://sis-omm-mcc-uat.paic.com.cn/admin/login.html,//*[@id='uname'],CHENZHIXU888,//*[@id='password'],,//*[@id='ext-gen1018']/div/div/div/a"
同一效果,經本身改造如下是一種更簡單易懂的寫法:web
一、代碼以下:可直接執行(得修改配置文件路徑,及一些參數值,好比URL,用戶名密碼等等)chrome
import java.io.FileInputStream; import java.io.IOException; 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; public class LoginTest { public static void main(String[] args) throws InterruptedException { System.out.println("請輸入須要登陸的系統編號:"); System.out.println("1.後管平臺;2.testlink;3.jira-PASTOCK;4.jira-oas;5.短信平臺;6.pafa5運管平臺。"); System.setProperty("webdriver.chrome.driver", "D:/myselenium/selenium-kuanjia2016/chromedriver_win32/chromedriver.exe"); Scanner scan = new Scanner(System.in);//Scanner類能夠直接接收控制檯命令行的輸入 int chooseNo = scan.nextInt();//將輸入信息的下一個標記掃描爲一個 int scan.close(); WebDriver driver = new ChromeDriver(); loginStart(chooseNo,"D:/myselenium/ZDHTest/selenium/loginData.properties",driver); } public static Properties getProperties(String filePath){ Properties pp = new Properties(); FileInputStream fin = null; try { fin = new FileInputStream(filePath); pp.load(fin); } catch (IOException e) { e.printStackTrace(); } return pp; } public static void loginStart(int num,String path,WebDriver driver){ Properties pp = getProperties(path); //String[] elements = getPropertiesValue(chooseUrl(num),path).replace("\"","").split(","); //String[] elements = getPropertiesValue(chooseUrl(num),path).split(","); String[] elements = pp.getProperty(chooseUrl(num)).split(","); /*for (String s:elements ){ System.out.println(s);//依次輸出數組中的全部元素 }*/ 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: //ant return "ant"; case 2: //testlink return "testlink"; case 3: //jira-PASTOCK return "PASTOCK"; case 4: //jira-oas return "oas"; case 5: //sms return "sms"; case 6: //pafa5 return "pafa5"; default: return "ant"; } } }
二、配置修改文件以下(去掉雙引號,由於配置文件中的鍵與值都是String型,可省略雙引號):數組
ant=https://soasadmin-stg.paic.com.cn/admin/admin/login.html,/html/body/div/div[3]/div[1]/table/tbody/tr[1]/td[2]/input,SUBAOYA853,/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.paic.com.cn/testlink/login.php?note=expired&destination=%2Ftestlink%2Findex.php%3Fcaller%3Dlogin,//*[@id='login'],subaoya023,//*[@id='login_div']/form/p[2]/input,feQ44Rs70112,//*[@id='login_div']/form/input[5] PASTOCK=http://jira-stock.paic.com.cn:8080/login.jsp?permissionViolation=true&os_destination=%2Fbrowse%2FPASTOCK-1928%3Ffilter%3D-2&page_caps=&user_role=,//*[@id='login-form-username'],subaoya023,//*[@id='login-form-password'],feQ44Rs70112,//*[@id='login-form-submit'] oas=http://jira-stock.paic.com.cn:8080/login.jsp?permissionViolation=true&os_destination=%2Fbrowse%2FOAS-2&page_caps=&user_role=,//*[@id='login-form-username'],subaoya023,//*[@id='login-form-password'],feQ44Rs70112,//*[@id='login-form-submit'] sms=http://pscptest-10.paic.com.cn:42154/pscp/login.jsp#,//*[@id='j_username'],XUDAN005,//*[@id='j_password'],hello1234,//*[@id='login_form']/table/tbody/tr[1]/td[3]/input pafa5=http://sis-omm-mcc-uat.paic.com.cn/admin/login.html,//*[@id='uname'],CHENZHIXU888,//*[@id='password'],,//*[@id='ext-gen1018']/div/div/div/a
三、執行,輸入1或2或其餘相應的數值均可執行相應的程序,進入不一樣的URL進行驗證;也能夠本身寫批處理文件在控制檯執行jsp