Software Testing Techniques LAB 02: Selenium
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 didn’t 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的更多相关文章
- 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- ...
- 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 ...
- 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 ...
- 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 ...
- 读书笔记-Software Testing(By Ron Patton)
Software Testing Part I:The Big Picture 1.Software Testing Background Bug's formal definition 1.The ...
- Web Application Penetration Testing Local File Inclusion (LFI) Testing Techniques
Web Application Penetration Testing Local File Inclusion (LFI) Testing Techniques Jan 04, 2017, Vers ...
- 101+ Manual and Automation Software Testing Interview Questions and Answers
101+ Manual and Automation Software Testing Interview Questions and Answers http://www.softwaretesti ...
- Exploratory Software Testing
最近找到去年上半年看过一本关于测试方面书籍的总结笔记,一直放在我的个人U盘里,当时是用Xmind记录的,现在重新整理下分享给大家了! James A.Whittaker [美] 詹姆斯·惠特克(软件测 ...
- 软件测试software testing summarize
软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性.完整性.安全性和质量的过程.软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对 ...
随机推荐
- Mac 10.12安装Google浏览器
说明:先安装旧版本后续再升级,主要是资源难找. 下载: (链接: https://pan.baidu.com/s/1eROfQyY 密码: n6ij)
- canvas猜数游戏
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- wpf 自定义ListView
1.listview.itemtemplate设置item的外层父元素的控件. 2.listview.template设置item的样式(datatemplate),也可以使用itemcontaine ...
- Window10安装Django,并创建第一个Django项目
1.在cmd中输入pip install Django==1.11.7,安装的版本为:1.11.7. 2.安装完成后输入: >>> import django >>> ...
- AngularJS 的常用特性(三)
6.表达式 在模板中使用表达式是为了以充分的灵活性在模板.业务逻辑和数据之间建立联系,同时又能避免让业务逻辑渗透到模板中. <div ng-controller="SomeContr ...
- 我爱Markdown (2)
Markdown的语法很简单,所以很容易上手.下面介绍一下常用的Markdown的语法, 本文将介绍: 01 - Back-ticks 反尖号 02 - Headers 标题 03 - Emphasi ...
- SharePoint 2013的REST编程基础
1. SharePoint 2013对REST编程的支持 自从SharePoint2013开始, SharePoint开始了对REST 编程的支持,这样除了.NET , Silverlight, Po ...
- ios 点击失效、闪屏问题解决方案
一.点击失效 描述:将点击事件(click)委派在document或者body上,且目标元素为默认不可点击的元素时(非<a>. <button>而是<span>等) ...
- 虚拟机安装Ubuntu的上网设置(有线网络和无线网络)
(恩,是转的) 虚拟机下ubuntu共享方式上网: 一. 有线网络 在有线网络的条件下,vmware的安装非常简单,上网方式几乎不用怎么设置(默认NAT模式) 如果默认情况下不能上网,则按以下 ...
- 构建流式应用—RxJS详解[转]
目录 常规方式实现搜索功能 RxJS · 流 Stream RxJS 实现原理简析 观察者模式 迭代器模式 RxJS 的观察者 + 迭代器模式 RxJS 基础实现 Observable Observe ...