예제 #1
0
  /**
   * This method just provides object of LoggingResultsFormatter which is needed to create instance
   * of LoggingSelenium class.
   *
   * @return Instance of LoggingResultsFormatter
   */
  public LoggingResultsFormatter createResultFormatter() {

    try {
      final String RESULT_FILE_ENCODING = "UTF-8";
      final String SCREENSHOT_PATH = "screenshots";

      String resultsPath = new File(RESULTS_BASE_PATH).getAbsolutePath();
      String screenshotsResultsPath =
          new File(RESULTS_BASE_PATH + File.separator + SCREENSHOT_PATH).getAbsolutePath();

      if (!new File(resultsPath).exists()) {
        new File(resultsPath).mkdirs();
      }
      if (!new File(screenshotsResultsPath).exists()) {
        new File(screenshotsResultsPath).mkdirs();
      }

      resultHtmlFileName =
          resultsPath + File.separator + "report_" + timeStampForFileName() + ".html";
      System.err.println("resultHtmlFileName=" + resultHtmlFileName);
      loggingWriter = LoggingUtils.createWriter(resultHtmlFileName, RESULT_FILE_ENCODING, true);

      htmlFormatter = new HtmlResultFormatter(loggingWriter, RESULT_FILE_ENCODING);

      htmlFormatter.setScreenShotBaseUri(SCREENSHOT_PATH + "/");

      htmlFormatter.setAutomaticScreenshotPath(screenshotsResultsPath);
    } catch (SeleniumException ex) {

    }

    return htmlFormatter;
  }
예제 #2
0
  /**
   * This method returns a LoggingSelenium instance. Launches the browser with a new Selenium
   * session. Use this only if you want to have one selenium instance.
   *
   * @return Selenium session
   */
  public LoggingSelenium createDefaultSeleniumInstance(String browser, String url) {

    boolean quit = false;
    // if (selenium == null) {
    try {
      final String RESULT_FILE_ENCODING = "UTF-8";
      final String SCREENSHOT_PATH = "screenshots";

      String resultsPath = new File(RESULTS_BASE_PATH).getAbsolutePath();
      String screenshotsResultsPath =
          new File(RESULTS_BASE_PATH + File.separator + SCREENSHOT_PATH).getAbsolutePath();

      if (!new File(resultsPath).exists()) {
        new File(resultsPath).mkdirs();
      }
      if (!new File(screenshotsResultsPath).exists()) {
        new File(screenshotsResultsPath).mkdirs();
      }

      currentScreenShotPath = screenshotsResultsPath;

      String partialFileName =
          File.separator + testName + "report_" + timeStampForFileName() + ".html";

      resultHtmlFileName = resultsPath + partialFileName;
      relativeResultHtmlFileName = RESULTS_BASE_PATH + partialFileName;

      System.err.println("resultHtmlFileName=" + resultHtmlFileName);
      loggingWriter = LoggingUtils.createWriter(resultHtmlFileName, RESULT_FILE_ENCODING, true);

      LoggingResultsFormatter htmlFormatter =
          new HtmlResultFormatter(loggingWriter, RESULT_FILE_ENCODING);

      htmlFormatter.setScreenShotBaseUri(SCREENSHOT_PATH + "/");
      htmlFormatter.setAutomaticScreenshotPath(screenshotsResultsPath);
      LoggingCommandProcessor myProcessor =
          new LoggingCommandProcessor(
              ConfigFileReader.getConfigItemValue("selenium.server.host"),
              4444,
              browser,
              url,
              htmlFormatter);
      myProcessor.setExcludedCommands(
          new String[] {"captureEntirePageScreenshotToString", "captureScreenshot"});
      selenium = new LoggingDefaultSelenium(myProcessor);

      /*			RemoteControlConfiguration rcc = server.getConfiguration();
      File profileLocation = new File(ConfigFileReader.getConfigItemValue("selenium.firefox.profile"));
      rcc.setProfilesLocation(profileLocation);
      rcc.setFirefoxProfileTemplate(profileLocation);
      rcc.setReuseBrowserSessions(true);
      selenium.start(rcc);

      BrowserConfigurationOptions bb = new BrowserConfigurationOptions();
      bb.setProfile(profile)*/
      selenium.start();

      selenium.setSpeed(ConfigFileReader.getConfigItemValue("selenium.speed"));
      selenium.setTimeout("120000");
      // selenium.deleteAllVisibleCookies();

      try {
        selenium.open(url);
      } catch (Exception e) {
        // selenium.refresh();
        selenium.waitForElementPresent("css=a:contains('Sign In')");
      }

      // selenium.waitForPageToLoad(TestConsts.PAGE_LOAD_TIMEOUT);
      selenium.waitForElementPresent("css=a:contains('Sign In')");
      selenium.windowMaximize();
      selenium.windowFocus();

    } catch (SeleniumException ex) {
      logger.error(ex.getMessage());
      quit = true;
      // }
    }
    if (quit) {
      stopSeleniumInstance();
      System.exit(0);
    }

    return selenium;
  }