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. basic algorithm- 20190416-20190425

    binary search 14.https://www.lintcode.com/problem/first-position-of-target/description 74.https://ww ...

  2. 3Q大战现高潮,360 推出Android "3Q" IM即时通讯,岁末年初3Q大战惊现高潮

    岁末年初3Q大战惊现高潮,360震撼推出Android "3Q" IM即时通讯       看过了QQ和360斗争的开端高潮,当然现在还不能说这场斗争已经结束,在我看来这次的事件未 ...

  3. utf8 和 UTF-8 在使用中的区别

    在使用中常常遇到utf-8和utf8,现在终于弄明白他们的使用不同之处了,现在来和大家分享一下,下面我们看一下utf8 和 UTF-8 有什么区别 “UTF-8”是标准写法,php在Windows下边 ...

  4. 【Kafka源码】日志处理

    目前来说,kafka的日志中记录的内容比较多,具体的存储内容见这篇博客,写的比较好.可以看到,存储的内容还是比较多的,当存储文件比较大的时候,我们应该如何处理这些日志?下面我们通过kafka启动过程的 ...

  5. Veloce2 Emulator

    High capacity, high-speed, multi-application powerhouse for simulation and emulation of SoC designs ...

  6. Go RabbitMQ(四)消息路由

    RabbitMQ_Routing 本节内容我们将对发布订阅增加一个特性:订阅子集.比如我们将一些危险的错误消息保存进硬盘中,同时在控制台仍然能够读取所有的消息 Bingings 上一节内容我们将队列跟 ...

  7. Go RabbitMQ(三)发布订阅模式

    RabbitMQ 在上一节中我们创建了工作队列,并且假设每一个任务都能够准确的到达对应的worker.在本节中我们将介绍如何将一个消息传递到多个消费者,这也就是所说的发布订阅模式 为了验证该模式我们使 ...

  8. Elastic Kibana - Install as windows service

    #1 通过windows sc 服务命令安装 sc create "Kibana661" binPath= "{path}\kibana.bat" depend ...

  9. 从源码看 Promise 概念与实现

    Promise 是 JS 异步编程中的重要概念,它较好地解决了异步任务中回调嵌套的问题.在没有引入新的语言机制的前提下,这是如何实现的呢?上手 Promise 时常见若干晦涩的 API 与概念,它们又 ...

  10. MySQL---6、可视化工具工具之SQLYog安装配置

    一.安装文件包下载 https://pan.baidu.com/share/link?shareid=4149265923&uk=724365661&fid=2642450782 二. ...