软件测试之Selenium Java WebDriver

Posted 宋小环

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试之Selenium Java WebDriver相关的知识,希望对你有一定的参考价值。

编写Selenium Java WebDriver程序,测试inputgit.csv表格中的学号和git地址的对应关系

  
package selenium2;

import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
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;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;

@RunWith(Parameterized.class)
public class selenium2 {
  private WebDriver driver;
  private String baseUrl;
  private boolean acceptNextAlert = true;
  private StringBuffer verificationErrors = new StringBuffer();
  
  private String name;
  private String password;
  private String github;
public selenium2(String name, String password, String github)
  {
      this.name = name;
      this.password = password;
      this.github = github;
  }
  
  @Parameters
  public static Collection data()
  {
      Object[][] oa = new Object[117][3];
      
      File dataFile = new File("D:\\\\大三下\\\\软件测试\\\\lab2\\\\inputgit.csv");
      if(dataFile.exists() && dataFile.isFile())
      {
          try
          {
              FileReader fr = new FileReader(dataFile);
              BufferedReader br = new BufferedReader(fr);
              String content = br.readLine();
              int count = 0;
              String[] pieces = new String[3];
              while ((content = br.readLine())!=null)
              {
                  pieces = content.split(",");
                  oa[count][0] = pieces[0];
                  oa[count][1] = pieces[0].substring(4);
                  oa[count][2] = pieces[2];
                  count = count + 1;
              }
              br.close();
              fr.close();
          }catch(FileNotFoundException e)
          {
              System.out.println("Cann\'t find file, error info: " + e.getMessage());
          }catch(IOException e)
          {
              e.printStackTrace();
          }
      }
      else
      {
          System.out.println("Can not find file!");
      }
      return Arrays.asList(oa);
  }

  @Before
  public void setUp() throws Exception {
    System.setProperty("webdriver.gecko.driver", "D:\\\\大三下\\\\软件测试\\\\lab2\\\\geckodriver.exe");
    driver = new FirefoxDriver();
    baseUrl = "http://121.193.130.195:8080";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    
  }

  @Test
  public void test() throws Exception {
    driver.get(baseUrl + "/");
    driver.findElement(By.id("name")).clear();
    driver.findElement(By.id("name")).sendKeys(name);
    driver.findElement(By.id("pwd")).clear();
    driver.findElement(By.id("pwd")).sendKeys(password);
    driver.findElement(By.id("submit")).click();
    assertEquals(github, driver.findElement(By.xpath("//tbody[@id=\'table-main\']/tr[3]/td[2]")).getText());
  }

  @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.所导入jar包为:

2.使用的FF为版本40

3.当junit测试成功时,117个数据将自动检验并成功显示

 

以上是关于软件测试之Selenium Java WebDriver的主要内容,如果未能解决你的问题,请参考以下文章

Selenium之firefox浏览器的启动

使用 selenium webdriver 定位由 javascript 创建的元素

python3+selenium3遇到的问题:Exception ignored in: <bound method Service.__del__ of <selenium.webdri

selenium模块 当然可以用来测试啦

Selenium Basic Knowledge

selenium模块