首页 > 代码库 > Software Testing Techniques LAB 02: Selenium

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 doesnt use the Unicode to encoding.

So we cant 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