Lab2_3015218122_戎达
实验过程:
1.给火狐浏览器安装Selenium,点击附加组件,再在搜索框中搜索Selenium IDE
再在搜索框中搜索Selenium IDE
选择Selenium IDE
由于火狐浏览器不是最新版本,无法匹配最新的Selenium,所以拉到下面寻找历史版本,并将其添加
添加完成后,火狐浏览器将出现Selenium录制的按钮
2.点击Selenium录制按钮,进入录制界面,录制开始后,输入网址https://psych.liebes.top/st,输入个人学号、密码,登入系统后进入呈现出url的界面。
此刻录制已经完成,停止录制
将录制结果以java junit4的形式导出,获得文件lab2.java
将其加入先前建好的java工程中
3.将所需的jar包,包括支持读取xlsx的库文件和junit库文件以及支持Selenium操作的库文件
4.写好测试代码后,run as junit test,程序运行
实验结果:
实验代码:
public class Lab2 {
int e=0;
private InputStream inputStream;
private String filepath="C://Users//rodar//Desktop//input.xlsx";
public XSSFWorkbook xssFWorkbook;
private XSSFSheet xssfSheet;
private HashMap<String, String> hashMap=new HashMap<>();
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
private String id=null;
private String pwd=null;
private String url=null;
static Thread thread=new Thread();
@Before
public void setUp() throws Exception {
System.setProperty("webdriver.firefox.marionette","C://Users//rodar//Desktop//geckodriver.exe");
driver = new FirefoxDriver();
baseUrl = "https://psych.liebes.top/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void testLab2() throws Exception {
inputStream=new FileInputStream(new File(filepath));
xssFWorkbook=new XSSFWorkbook(inputStream);
xssfSheet=xssFWorkbook.getSheetAt(0);
for(int i=0;i<=xssfSheet.getLastRowNum();i++){
if(xssfSheet.getRow(i).getCell(0).getCellType()==0){
String kkk=String.valueOf((long)xssfSheet.getRow(i).getCell(0).getNumericCellValue());
String vvv=String.valueOf(xssfSheet.getRow(i).getCell(1).getStringCellValue());
hashMap.put(kkk, vvv);
}
else{
if(xssfSheet.getRow(i).getCell(0).getStringCellValue().equals("3015218150")){
continue;
}
hashMap.put(xssfSheet.getRow(i).getCell(0).getStringCellValue(), xssfSheet.getRow(i).getCell(1).getStringCellValue());
}
}
Iterator iterator=hashMap.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry<String, String> entry=(Map.Entry<String, String>)iterator.next();
id=entry.getKey();
pwd=entry.getKey().substring(id.length()-6, id.length());
url=entry.getValue();
driver.get(baseUrl + "/st");
driver.findElement(By.id("username")).sendKeys(id);
driver.findElement(By.id("password")).sendKeys(pwd);
driver.findElement(By.id("submitButton")).click();
String url2=driver.findElement(By.xpath("//div[@class='login-box-body']/a/p[@class='login-box-msg']")).getText();
if(!url2.equals(url)){
System.out.println(id+"是错的");
}
else{
assertEquals(url, url2);
}
}
inputStream.close();
}
@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;
}
}
}
浙公网安备 33010602011771号