1. Installing

1. Install firefox 38.5.1

2. Install SeleniumIDE 

 

After installing, I set the view of toolbox, then we can see this

3. Install Selenium Client & WebDrive

4. Install Selenium Standalone Server

5. Installed Test

After downloading we have these files

Then we test Selenium IDE on firefox firstly,

I recorded the script about signing in the Software Testing Techniques Website

Then I export the script,

Then I test the web driver,

First, I wrote the code about searching by Baidu.com

This is the result,

The installing is finished now!

2. Data processing

There is a big problem that the inputgit.csv file doesn’t use the Unicode to encoding.

So we can’t process it by JAVA.String function, and normally we open it with gibberish.

I have to change the encoding to UTF-8 WITH BOM

3. Coding and checking

1. Coding

The whole project looks like this

1.1 The csv files reader

readFile.java

Cut the last 6 num from student num as password

pwd[idx] = num[idx].substring(4);

This is the whole code

package Test1;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class readFile { public String[] num = new String[120];
public String[] name = new String[120];
public String[] add = new String[120];
public String[] pwd = new String[120]; public void read (){
int idx = 0;
File csv = new File("D:\\java\\workplace\\seleniumTest\\bin\\Test1\\inputgit.csv");
BufferedReader br = null;
try
{
br = new BufferedReader(new FileReader(csv));
} catch (FileNotFoundException e)
{
e.printStackTrace();
}
String line = "";
String[] everyLine = new String[3];
try {
line = br.readLine();
while ((line = br.readLine()) != null)
{
everyLine =line.split(",");
num[idx] = everyLine[0];
name[idx] = everyLine[1];
add[idx] = everyLine[2];
pwd[idx] = num[idx].substring(4); idx++;
}
} catch (IOException e)
{
e.printStackTrace();
}
} }

1.2 The NumTest.java

 

This file just come from the NumTest.java, but I add some functions and variables to store and return a Git address from test student number.

The most important part is set the web driver location

System.setProperty("webdriver.firefox.bin", "D:\\oldfirefox\\firefox.exe");
System.setProperty("webdriver.firefox.marionette", "D:\\oldfirefox\\geckodriver.exe");

Change function to receive the number and password from csv reader.

public void testNum(String num, String pwd)

This is the whole code

package Test1;

import java.util.regex.Pattern;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select; public class NumTest {
public String add;
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer(); @Before
public void setUp() throws Exception {
System.setProperty("webdriver.firefox.bin", "D:\\oldfirefox\\firefox.exe");
System.setProperty("webdriver.firefox.marionette", "D:\\oldfirefox\\geckodriver.exe");
driver = new FirefoxDriver();
baseUrl = "Invisible";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
} @Test
public void testNum(String num, String pwd) throws Exception {
driver.get(baseUrl + "/");
driver.findElement(By.id("reset")).click();
driver.findElement(By.id("name")).clear();
driver.findElement(By.id("name")).sendKeys(num);
driver.findElement(By.id("pwd")).clear();
driver.findElement(By.id("pwd")).sendKeys(pwd);
driver.findElement(By.id("submit")).click();
add = driver.findElement(By.xpath("//tbody[@id='table-main']/tr[3]/td[2]")).getText();
System.out.println(add);
} @After
public 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;
}
} }

1.3 The mainCheck.java

This file contains the main function, and is control the whole program

package Test1;

public class mainCheck {

    public static void main(String args[]) {
readFile readFile = new readFile();
readFile.read(); NumTest ntest = new NumTest();
try {
for (int idx = 0; idx < readFile.num.length;idx++ )
{
System.out.println(idx);
ntest.setUp();
ntest.testNum(readFile.num[idx], readFile.pwd[idx]);
if (!ntest.add.equals(readFile.add[idx]) )
System.out.println(readFile.num[idx]+"wrong!");
else
System.out.println(readFile.num[idx]+"right!");
ntest.tearDown();
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}

4. Result

I print all student number and if the github address is right then print “right!

If wrong then print “wrong!

But because this program is too slow to open firefox every time, so I didnt run it for all student numbers

The more detail please come to my blog:

http://www.cnblogs.com/nocis/p/6618790.html

The code has been uploaded to my Github:

https://github.com/nocis/Software-Test/tree/master/seleniumTest

Software Testing Techniques LAB 02: Selenium的更多相关文章

  1. Software Testing Techniques LAB 01: test Junit and Eclemma

    1. Installing  1. Install Junit and hamcrest First, I download the Junit-4.12.jar and hamcrest-core- ...

  2. Software Testing Techniques Homework 3

    1. a.This is the chart b. initial numPrimes = 4, t1 would over the loop. c. t = ( n = 1) d. node cov ...

  3. Software Testing Techniques Homework 2

    Problem 1 1. The fault is i > 0, it should be  i >= 0, because if the case is x = [0], y= 0, w ...

  4. Software Testing Techniques Homework 1

    I have met some errors in recent years, one of them which impress me most. It happend when I try to ...

  5. 读书笔记-Software Testing(By Ron Patton)

    Software Testing Part I:The Big Picture 1.Software Testing Background Bug's formal definition 1.The ...

  6. Web Application Penetration Testing Local File Inclusion (LFI) Testing Techniques

    Web Application Penetration Testing Local File Inclusion (LFI) Testing Techniques Jan 04, 2017, Vers ...

  7. 101+ Manual and Automation Software Testing Interview Questions and Answers

    101+ Manual and Automation Software Testing Interview Questions and Answers http://www.softwaretesti ...

  8. Exploratory Software Testing

    最近找到去年上半年看过一本关于测试方面书籍的总结笔记,一直放在我的个人U盘里,当时是用Xmind记录的,现在重新整理下分享给大家了! James A.Whittaker [美] 詹姆斯·惠特克(软件测 ...

  9. 软件测试software testing summarize

    软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性.完整性.安全性和质量的过程.软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对 ...

随机推荐

  1. Mac 10.12搭建OpenVPN服务器以及客户端的使用

    说明:我未实践,大概就是这几个步骤,建议服务器在Linux下搭建效果会更好. 1.用brew下载openvpn brew install openvpn 2.命令行输入 openvpn --versi ...

  2. Java之重载(Overload)与重写(Overwrite)总结

    内容来源为:<孙卫琴面向对象编程>,本随笔简单总结,具体内容可参见概述第6章,写的挺清晰: 一. 重载(Overload) 1. 有时候类的同一种功能有多种实现方式,到底采用哪种实现方式, ...

  3. mongo 固定集合,大文件存储,简单优化 + 三招解决MongoDB的磁盘IO问题

    1.固定集合 > db.createCollection(, max:});//固定集合 必须 显式创建. 设置capped为true, 集合总大小xxx字节, [集合中json个数max] { ...

  4. ../../build/debug/codegen/libCodeGen.a(llvm-codegen.cc.o ):( data.rel.ro_ZTIN4llvm18ValueMapCallbackVHIPKNS_5ValueENS_6WeakVHENS_14ValueMapConfigIS3_EEEE[_ZTIN4llvm18ValueMapCallbackVHIPKNS_5ValueENS_

    解决方式如下: wget http://llvm.org/releases/3.3/llvm-3.3.src.tar.gz    tar xvzf llvm-3.2.src.tar.gz    cd ...

  5. [作业] Python入门基础--用户登陆

    让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定登陆 #__author:Mifen #date: 2018/11/28 import time #自定义本地用户名和密码 user_nam ...

  6. ES6学习随笔--字符串模板、解构赋值、对象、循环、函数、Promise、Generrator

    在线编译器:babel.github 在nongjs中使用 'use strict' let a = ; 运行node : node --harmony_destructuring xxx.js 代码 ...

  7. JavaScript ES6 Symbol.hasInstance的理解。

    Symbol.hasInstance 本案例是结合阮一峰老师的ECMAScript 6 入门丛书进一步的详细介绍,和对Symbol.hasInstance的理解.本着互联网的精神,分享给大家. 对象的 ...

  8. s:iterator的用法

    truts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等以下几个简单的demo: s:iterator 标签有3个属性:     value:被迭代的集合     id   :指定 ...

  9. Node.js创建第一个应用

    在我们创建 Node.js 第一个 "Hello, World!" 应用前,让我们先了解下 Node.js 应用是由哪几部分组成的: 引入 required 模块:我们可以使用 r ...

  10. 文件流FileStram类

    本节课主要学习三个内容: 创建FileStram流 读取流 写入流 文件流FileStram类,是用来实现对文件的读取和写入.FileStram是操作字节的字节数组,当提供向文件读取和写入字节的方法时 ...