此文主要通过 百度登录 功能,进行 Selenium2 的实战实例讲解。文中所附源代码于 2015-01-17 23:33 亲测通过,敬请亲们阅览。 同时,您也可参考此文进行其他网站(例如 京东、易迅、天猫等)的登录(一般登录流程基本相同,若需填写验证码,因目前验证码识别不方便,初始学习时可让脚本运行到添加验证码时人工输入。在单位进行此部分的自动化脚本编写时,最好取得开发的支持使用万能验证码,方便脚本编写),进行编写登录自动化测试脚本, 若您直接使用此文所附的源代码运行测试,则需要将文中 账户名和密码 替换为正确的用户名和密码,否则脚本运行过程中会因登录用户名元素无法获取而报错,请知悉。
希望能对初学 Selenium2 WebUI 自动化测试编程的亲们有所帮助。若有不足之处,敬请大神指正,不胜感激!
百度登录 WebUI 自动化功能测试脚本 实现功能步骤如下所示:
-
- 启动 Chrome 浏览器, 并最大化窗口
- 打开百度网址:www.baidu.com
- 点击登录按钮
- 输入账户和密码
- 点击登录按钮
- 获取登录用户名, 并输出登录用户名
- 关闭浏览器
夜已深了,鬼话少述,直接上源代码了。 百度登录 WebUI 自动化功能测试脚本 源代码如下所示:
1 /** 2 * Aaron.ffp Inc. 3 * Copyright (c) 2014-2015 All Rights Reserved. 4 */ 5 package main.java.aaron.selenium; 6 7 import java.util.concurrent.TimeUnit; 8 9 import org.openqa.selenium.By; 10 import org.openqa.selenium.WebDriver; 11 import org.openqa.selenium.WebElement; 12 import org.openqa.selenium.chrome.ChromeDriver; 13 14 /** 15 * WebUI自动化功能测试脚本-002:百度登录 16 * 17 * 实现的百度搜索功能步骤描述如下: 18 * 1.启动 Chrome 浏览器, 并最大化窗口 19 * 2.打开百度网址:www.baidu.com 20 * 3.点击登录按钮 21 * 4.输入账户和密码 22 * 5.点击登录按钮 23 * 6.获取登录用户名, 并输出登录用户名 24 * 7.关闭浏览器 25 * @author Aaron.ffp 26 * @version $Id: LoginBaidu.java, v 0.1 2015年1月16日 上午12:30:03 Aaron.ffp Exp $ 27 */ 28 public class BaiduLogin { 29 private static WebDriver cd; 30 private static String baseUrl; // 百度首页网址 31 private static WebElement lnk_login; // 页面元素:登录链接 32 private static WebElement txt_username; // 页面元素:账户录入框 33 private static WebElement txt_userpass; // 页面元素:密码录入框 34 private static WebElement btn_login; // 页面元素:登录按钮 35 private static WebElement loginname; // 页面元素:登录用户名 36 37 /** 38 * 测试主入口 39 * @param args 40 * @throws InterruptedException 41 */ 42 public static void main(String[] args) throws InterruptedException{ 43 chromeStart(); 44 45 baiduLogin(); 46 47 // chromeQuit(); 48 } 49 50 /** 51 * 功能:Chrome WebDriver 设置, 网址及搜索内容初始化, 打开 Chrome 浏览器, 并最大化 52 */ 53 public static void chromeStart(){ 54 /* 设定 chrome webdirver 的位置 */ 55 System.setProperty("webdriver.chrome.driver", "C:/Windows/System32/chromedriver.exe" ); 56 /* 百度首页网址赋值 */ 57 baseUrl = "http://www.baidu.com/" ; 58 /* 启动 chrome 浏览器 */ 59 cd = new ChromeDriver(); 60 /* chrome 浏览器最大化 */ 61 cd.manage().window().maximize(); 62 } 63 64 /** 65 * 功能:百度登录主方法 66 * 67 * @throws InterruptedException 68 */ 69 public static void baiduLogin() throws InterruptedException{ 70 /* 打开百度首页 */ 71 cd.get(baseUrl); 72 /* 获取登录链接元素 */ 73 lnk_login = cd.findElement(By.xpath("//div[@id='u1']/a[6]" )); 74 /* 点击登录链接 */ 75 lnk_login.click(); 76 77 /* 等待 1s, 待网页加载完成再操作页面元素, 否则录入框元素查找时会报错:No such element */ 78 TimeUnit.SECONDS.sleep(1 ); 79 80 /* 输出当前网址 */ 81 System.out.println(cd.getCurrentUrl().toString()); 82 83 /* 获取元素:账户录入框 */ 84 txt_username = cd.findElement(By.id("TANGRAM__PSP_8__userName" )); 85 /* 获取元素:密码录入框 */ 86 txt_userpass = cd.findElement(By.id("TANGRAM__PSP_8__password" )); 87 /* 获取元素:登录按钮 */ 88 btn_login = cd.findElement(By.id("TANGRAM__PSP_8__submit" )); 89 90 /* 清空账户和密码(消除浏览器表单记录的影响), 并输入账户和密码 */ 91 txt_username.clear(); 92 txt_userpass.clear(); 93 txt_username.sendKeys("TANGRAM__PSP_8__userName"); // 此处需要在使用时, 替换为正确的账号 94 txt_userpass.sendKeys("TANGRAM__PSP_8__userName"); // 此处需要在使用时, 替换为正确的密码 95 96 /* 点击登录按钮 */ 97 btn_login.click(); 98 99 TimeUnit.SECONDS.sleep(2 ); 100 101 /* 获取登录用户名, 获取的用户明确可用于校验登录用户是否正确无误 */ 102 loginname = cd.findElement(By.className("user-name" )); 103 104 /* 打印登录账户名 */ 105 System.out.println(loginname.getText()); 106 } 107 108 /** 109 * 关闭并退出 Chrome 110 */ 111 public static void chromeQuit(){ 112 /* 关闭 chrome */ 113 cd.close(); 114 /* 退出 chrome */ 115 cd.quit(); 116 } 117 }
至此, WebUI 自动化功能测试脚本 第 002 篇- 百度登录 顺利完结,希望此文能够给初学 Selenium 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^