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;
    }
  }
}

posted on 2018-04-15 11:08  IamRadar  阅读(141)  评论(0)    收藏  举报

导航