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),描述一种用来促进鉴定软件的正确性.完整性.安全性和质量的过程.软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对 ...
随机推荐
- CPU飚高问题排查基本步骤
CPU 飚高 一般是死循环或者死锁问题导致. 1. 通过 top 命令找到 CPU 消耗最高的进程,并记住进程 ID {pid}.top -M -n 2 -d 3 >{pid}/top.txt ...
- Sweep Line
391. Number of Airplanes in the Sky https://www.lintcode.com/problem/number-of-airplanes-in-the-sky/ ...
- Mac安装的PyCharm找不到顶部菜单栏 PyCharm找不到setting PyCharm不能个性化设置和直接导库
安装的是最新版的PyCharm,打开发现没有顶部菜单栏,不能直接导库..有点方 以前的就是下面这种 找了很久发现原来在右下角!!!眼拙 点击画圈圈的地方就可以直接进去导库这些啦〜
- weiFenLuo.winFormsUI.Docking.dll学习
引用方法: 1.建立一个WinForm工程,默认生成了一个WinForm窗体. 2.引用—>添加引用—>浏览—>weiFenLuo.winFormsUI.Docking.dll. 3 ...
- (转)错误"因为数据库正在使用,所以无法获得对数据库的独占访问权"的解决方案
引发原因:是因为我在还原数据库的时候,还有其他的用户正在使用数据库,所以就会出现以上提示. 解决方法:1,设置数据库在单用户模式下工作.设置方法:在需要还原的数据库上右击,在右键菜单命令上选择&quo ...
- 那些年,我们一起误解过的REST
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由sammyshen 发表于云+社区专栏 最近几年REST API越来越流行,特别是随着微服务的概念被广泛接受和应用,很多Web Ser ...
- 批量删除SVN文件
开发过程中,有时需要将SVN目录中的SVN相关的信息去掉,有两种简单方法可以做到: 一,用SVN的export功能 二,将下面的这段文字写在.reg结尾的文本文件中,然后执行.这样你在每个文件夹右击的 ...
- 集群搭建之Spark配置要点解析
注意点: 安装Spark前先要配置好Scala运行环境. Spark和Scala需要在各个机器上配置. 环境变量配置 在~/.bashrc中添加如下的配置信息. #scala conf export ...
- jsp技术知识点
1.jsp被Tomcat翻译成.java文件后,会被放在Tomcat安装目录下的\work\Catalina\localhost\station\org\apache\jsp文件夹下 2.El表达式表 ...
- mysql 中优化数据类型的三个原则
数据类型越小越好 在业务够用的情况下,尽可能选取小的数据类型.不仅占用空间小,而且执行查询等操作时性能好. 越简单越好 对于简单的类型,在处理时会占用更少的 CPU 周期. 例如,整数就比字符类型简单 ...