软件测试实验二——使用Selenium
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试实验二——使用Selenium相关的知识,希望对你有一定的参考价值。
In this Experiment, I used RunWith(Parameterized.class) to finish the task.
Problems I met in this lab:
1. Install Selenium IDE in FireFox and add Selenium to my java project.
Solution:
(1)Selenium IDE:
(2) Selenium WebDriver:
Download:http://www.seleniumhq.org/download/
Unpack the package, then add all Jars (inlcude the jars in the folder "lib") to your java project build path.
2. Selenium webdriver can‘t open firefox.
Solution: Download geckodriver in github(https://github.com/mozilla/geckodriver/releases). In the java project, add this:
System.setProperty("webdriver.gecko.driver", "Your geckodriver.exe path");
Code:
package lab.softwaretest; 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 Lab2 { 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 Lab2(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("E:\\\\University\\\\软件测试\\\\Lab\\\\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:\\\\Program Files\\\\Selenium reference\\\\geckodriver-v0.15.0-win64\\\\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 + "/index.html"); 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; } } }
Result:
以上是关于软件测试实验二——使用Selenium的主要内容,如果未能解决你的问题,请参考以下文章