Lab 2 Selenium:

一 、安装SeleniumIDE插件

1.下载火狐V42.0(下载地址:http://ftp.mozilla.org/pub/firefox/releases/42.0/win64/zh-CN/ )。

2.打开火狐浏览器,百度打开  https://addons.mozilla.org/zh-CN/firefox/addon/selenium-ide/versions/ ,选择Selenium IDE v2.9.1 ,在弹出窗口中选择安装-->立即重启即可。

 

二 、学会使用SeleniumIDE录制脚本和导出脚本

1.打开Firefox,按Ctl+ Alt + S打开SeleniumIDE,或者直接点击firework菜单栏--->selenium图标。

2.确保SeleniumIDE处于录制状态

3.用firework访问https://psych.liebes.top/st,使用学号登录系统(账户名为学号,密码为学号后6位),进入系统后可以看到你的git地址,再次点击红色按钮完成录制,并保存测试用例(文件—>Save Test Case) 。

4.导出为Java代码。

文件—>Export—>Java/ JUnit 4 /WebDriver

代码如下:

accessWebsite.java

package com.example.tests;import java.util.regex.Pattern;public class AccessWebsite {private WebDriver driver;private String baseUrl;private boolean acceptNextAlert = true;private StringBuffer verificationErrors = new StringBuffer();@Beforepublic void setUp() throws Exception {driver = new FirefoxDriver();baseUrl = "https://psych.liebes.top/";driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);}@Testpublic void testAccessWebsite() throws Exception {driver.get(baseUrl + "/st");driver.findElement(By.id("username")).clear();driver.findElement(By.id("username")).sendKeys("3015218070");driver.findElement(By.id("password")).clear();driver.findElement(By.id("password")).sendKeys("218070");driver.findElement(By.id("submitButton")).click();driver.findElement(By.id("submitButton")).click();driver.findElement(By.cssSelector("p.login-box-msg")).click();}@Afterpublic void tearDown() throws Exception {driver.quit();String verificationErrorString = verificationErrors.toString();if (!"".equals(verificationErrorString)) {fail(verificationErrorString);}}private boolean isElementPresent(By by) {try {driver.findElement(by);return true;} catch (NoSuchElementException e) {return false;}}private boolean isAlertPresent() {try {driver.switchTo().alert();return true;} catch (NoAlertPresentException e) {return false;}}private String closeAlertAndGetItsText() {try {Alert alert = driver.switchTo().alert();String alertText = alert.getText();if (acceptNextAlert) {alert.accept();} else {alert.dismiss();}return alertText;} finally {acceptNextAlert = true;}}
}       

三、编写Selenium Java WebDriver程序,测试input.xlsx表格中的学号和git地址的对应关系是否正确。

1.下载Selenium Java 2.53.1(下载地址:http://selenium-release.storage.googleapis.com/index.html?path=2.53/ )。

2. 打开eclipse,新建项目lab2,导入selenium-java-2.53.1.jar,selenium-java-2.53.1-srcs.jar 和 libs文件夹里的所有jar包。

项目目录右键-->Build Path--> config build path-->Java Build Path-->Libraries-->Add External JARs-->OK。

3. 下载jxl-2.6.10.jar(下载地址:http://maven.ibiblio.org/maven2/net/sourceforge/jexcelapi/jxl/ ),用于读取input.xlsx(excel文件),并导入项目lab2,同时导入hamcrest-all-1.3.jar(下载地址见上一篇博客),导入方法与步骤2一样。

4. 编写代码。

注意点:(1)excel表格中有的github地址后面带有"/",建议都去掉"/"再比较

if(info.endsWith("/")) {

                                             info = info.substring(0, info.length()-1);                                       }                                      if(address.endsWith("/")) {                                            address = address.substring(0, address.length()-1);
                                               }

(2)从excel表格中获取的github地址以及从页面获得的地址,都用trim()去掉首尾空格后再比较是否一致。

代码如下:

Selenium.java 

package selenium;import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import org.openqa.selenium.*;import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;public class Selenium {private WebDriver driver;private String baseUrl;private boolean acceptNextAlert = true;private StringBuffer verificationErrors = new StringBuffer();String info=new String();String address=new String();@Beforepublic void setUp() throws Exception {System.setProperty("webdriver.chrome.driver","E:/大三下/软件测试/chromedriver.exe"); // 此处PATH替换为你的chromedriver所在路径driver = new ChromeDriver();baseUrl = "https://psych.liebes.top/";driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);}@Testpublic void test1() throws Exception {   //读取excel文件File file = new File("E:/大三下/软件测试/input.xls");  try { // 创建输入流,读取Excel  InputStream is = new FileInputStream(file.getAbsolutePath());  // jxl提供的Workbook类  Workbook wb = Workbook.getWorkbook(is);// 为页签sheet 1创建一个Sheet对象  Sheet sheet = wb.getSheet(0);for (int i = 0; i < sheet.getRows(); i++) {  //按列名读取这条记录的值String number = sheet.getCell(0, i).getContents();  //读取学号String pwd = number.substring(number.length()-6,number.length()); //读取密码address = sheet.getCell(1, i).getContents().trim();  //读取github地址,记得用trim去掉首尾空格//访问给定网址driver.get(baseUrl + "/st");//输入用户名driver.findElement(By.id("username")).clear();driver.findElement(By.id("username")).sendKeys(number);//输入密码driver.findElement(By.id("password")).clear();driver.findElement(By.id("password")).sendKeys(pwd);//点击登录按钮driver.findElement(By.id("submitButton")).click();//登录成功之后,获得当前页面的用户信息info = driver.findElement(By.tagName("p")).getText().trim();//excel表格中有的github地址后面带有"/",建议都去掉"/"再比较if(info.endsWith("/")) {info = info.substring(0, info.length()-1);}if(address.endsWith("/")) {address = address.substring(0, address.length()-1);}//比较查询信息            if(info.equals(address)) {assertEquals(info,address);System.out.println(number+"的信息一致.");}else {System.out.println(number+"的信息不一致.");}}driver.close();} catch (FileNotFoundException e) { e.printStackTrace();  } catch (BiffException e) {  e.printStackTrace();  } catch (IOException e) {  e.printStackTrace();  }  }@Afterpublic void tearDown() throws Exception {driver.quit();String verificationErrorString = verificationErrors.toString();if (!"".equals(verificationErrorString)) {fail(verificationErrorString);}}private boolean isElementPresent(By by) {try {driver.findElement(by);return true;} catch (NoSuchElementException e) {return false;}}private boolean isAlertPresent() {try {driver.switchTo().alert();return true;} catch (NoAlertPresentException e) {return false;}}private String closeAlertAndGetItsText() {try {Alert alert = driver.switchTo().alert();String alertText = alert.getText();if (acceptNextAlert) {alert.accept();} else {alert.dismiss();}return alertText;} finally {acceptNextAlert = true;}}}

5. 运行结果截图

软件测试:Lab 2 Selenium相关推荐

  1. 深圳软件测试培训:Selenium断言与验证

    深圳软件测试培训:Selenium断言与验证 一.什么是断言? 验证应用程序的状态是否同所期望的一致.常见的断言包括验证页面内容,如标题或当前位置是否正确等等. 二.断言的四种模式与五种手段 四种模式 ...

  2. 软件测试技术lab2——Selenium上机实验

    Selenium上机实验说明 1.安装SeleniumIDE插件 2.学会使用SeleniumIDE录制脚本和导出脚本 3.访问http://121.193.130.195:8080/使用学号登录系统 ...

  3. 【软件测试】python+selenium自动化测试

    一.什么是自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最 后评估运行结果.将人为驱动的测试行为转化为机器执行的过程. 单元测试 java的单元测 ...

  4. LRC软件测试自学,自学selenium笔记一 - kael的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    学习的内容如下,通过默认路径,指定路径打开IE,火狐,打开URL,得到当前网页的title和URL,关闭浏览器 打开火狐浏览器: package selrctest; import org.openq ...

  5. 【软件测试】使用selenium工具对Web聊天室项目进行UI自动化测试

    文章目录 用户注册功能 注册成功 注册失败 测试套件 HTML测试报告 异常截图 用户登陆注册功能 登陆成功 账号不存在,登陆失败 密码错误,登陆失败 测试套件 HTML测试报告 异常截图 本次自动化 ...

  6. 测试小白的软件测试知识(适用于面试前突击)

                                       第一节  软件测试基础知识 1. 怎样看待测试,知道哪些测试的类型,有用过哪些测试方法? 软件测试是使用人工或自动化手段来运行或测 ...

  7. 零基础怎么学测试?2022史上最全软件测试学习路线图+教程分享

    1.软件测试基础知识 >> 下载300G软测学习资料包[视频教程+PPT+课件+项目源码] 学习目标:对软件测试整理的测试流程有清晰的概念,了解软件测试到底是做什么的,软件测试的各种专业术 ...

  8. 软件测试需要学什么?年薪30W+的测试工程师需要掌握哪些技能?

    ​ 从事任何一个行业,不论想入行的新人还是已经在职的从业人员,一定要系统化的掌握自身的学习路线和发展方向,随时对自身的优劣点掌握清楚.尤其是对于软件测试这个岗位.测试职业所涉及的技能范围比较广,测试流 ...

  9. python3 selenium_Python3+Selenium3自动化测试-(准备)

    Python3+Selenium3自动化测试-(准备) 最近在学习selenium自动化测试相关的内容,所以将实际准备情况做一记录, # 系统:win10(64位) # 浏览器:Chrome(67.0 ...

  10. 【自动化】Python3+Selenium3自动化测试-准备工作

    # 系统:win7(64位) # 浏览器:Chrome(75.0.3770.100) # python版本:3.7.0 # Selenium:3.14.1 Selenium简介 Selenium是一款 ...

最新文章

  1. Windows7上使用VS2013编译Caffe源码(不带GPU支持)步骤
  2. 干燥剂变身“配重剂”,究竟有多少商家在休闲零食市场浑水摸鱼?
  3. 【opencv学习】完全基于opencv的双目景深与测距的实现
  4. 22. C# -- 抽象类和接口
  5. 【SpringCloud】Ribbon 负载均衡
  6. ANT出现“警告: 编码 GBK 的不可映射字符”解决方法
  7. 阅读《软件工程—理论方法与实践》第五章心得体会
  8. HITS 算法(Hypertext Induced TopicSelection)
  9. 【Android】1.开发环境搭建
  10. 六、基于UDP的服务器端/客户端
  11. Android--线程详解
  12. ML~线性代数~python
  13. 【Espruino】NO.18 使用L298N驱动直流电机
  14. 信息安全等级保护三级要求,安全管理机构多年测评经验分享
  15. win10 软路由_「保姆级」万晓博带你用软路由搭建家庭网络中心第1节-准备工作...
  16. WinRAR密码破解(精)
  17. python一维数组转置_Python 矩阵转置的几种方法小结
  18. 算法提高 金明的预算方案
  19. 最实用的网页设计素材打包下载[15G]
  20. Java(Spring boot)实现生成二维码

热门文章

  1. 递归算法经典实例python-python实现十大经典算法
  2. html 360 浏览器图片自适应,360浏览器看图模式 一键保存高清套图
  3. 计算机网络第五版谢希仁答案
  4. 原生 js 生成二维码
  5. 对抗极域电子教室#破解、解除
  6. 《Linux/UNIX系统编程手册(上、下册)》
  7. web前端简历个人技能该怎么写?
  8. 深入理解JVM虚拟机读书笔记——类的加载机制
  9. html天天生鲜项目,day54-天天生鲜项目订单管理
  10. 腾讯魔镜壁纸所在位置