lab2
- 安装SeleniumIDE插件
安装Firefox42.0版本,点击菜单栏并选择附加组件,依次搜索Selenium IDE,Firepath和Firebug, 并选择与浏览器相适配的版本添加,添加后如图所示:
工具栏出现如下图标:
2.学会使用SeleniumIDE录制脚本和导出脚本
(1)点击工具栏上的seleniumIDE图标,弹出如下界面框:
(2)单击红色按钮开始录制,访问给定的网址https://psych.liebes.top/st,并输入用户名及密码,点击提交后看到页面出现该用户名所对应的GitHub网址
(3)单击红色按钮停止录制,选择文件—export test case—Java/Junit4/webdriver
(4)将录制脚本导出,如图所示
3.编写程序,测试学号和git地址的对应关系是否正确
准备工作:(1)下载poi-bin-3.17-20170915.tar.gz
(2)下载selenium-2.53.0.zip
(3)将各jar包导入
package cn.tju.scs;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
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 xlxsTest1 {
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:/浏览器下载/firefox.exe" );
driver = new FirefoxDriver();
baseUrl = "https://psych.liebes.top/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void testScript() throws Exception {
try {
File writename = new File("D:/浏览器下载/output.txt");
writename.createNewFile();
BufferedWriter out = new BufferedWriter(new FileWriter(writename));
out.write(" 学号 希望URL 表中URL\r\n");
out.flush();
File src = new File("D:/浏览器下载/input.xlsx");
FileInputStream fis = new FileInputStream(src);
@SuppressWarnings("resource")
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sh= wb.getSheetAt(0);
for (int i = 0; i < sh.getPhysicalNumberOfRows(); i++) {
driver.get(baseUrl + "/st");
driver.findElement(By.id("username")).clear();
driver.findElement(By.id("username")).sendKeys(sh.getRow(i).getCell(0).getStringCellValue());
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys(sh.getRow(i).getCell(0).getStringCellValue().substring(4));
driver.findElement(By.id("submitButton")).click();
if (sh.getRow(i).getCell(1).getStringCellValue().trim().equals(driver.findElement(By.cssSelector("p.login-box-msg")).getText().trim())) {
System.out.println("通过 "+ sh.getRow(i).getCell(0).getStringCellValue());
} else {
System.out.println("未通过 "+ sh.getRow(i).getCell(0).getStringCellValue());
out.write(sh.getRow(i).getCell(0).getStringCellValue()+ " "+ String.format("%-40s",driver.findElement(By.cssSelector("p.login-box-msg")).getText())+ String.format("%-40s", sh.getRow(i).getCell(1).getStringCellValue()) + "\r\n");
out.flush();
}
}
out.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
@After
public void tearDown() throws Exception {
driver.close();
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;
}
}
}
结果:

浙公网安备 33010602011771号