jp.vmi.selenium.selenese.Main Maven / Gradle / Ivy
package jp.vmi.selenium.selenese;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import jp.vmi.selenium.selenese.log.CookieFilter;
import jp.vmi.selenium.selenese.log.CookieFilter.FilterType;
import jp.vmi.selenium.selenese.result.Result;
import jp.vmi.selenium.selenese.utils.LoggerUtils;
import jp.vmi.selenium.webdriver.DriverOptions;
import jp.vmi.selenium.webdriver.DriverOptions.DriverOption;
import jp.vmi.selenium.webdriver.WebDriverManager;
/**
* Provide command line interface.
*/
public class Main {
private static final Logger log = LoggerFactory.getLogger(Main.class);
private static final int HELP_WIDTH = 78;
private static final String PROG_TITLE = "Selenese Runner";
private static final String HEADER = "Selenese script interpreter implemented by Java.";
private static final String FOOTER = "*note: If you want to use basic and/or proxy authentication on Firefox, "
+ "then create new profile, "
+ "install AutoAuth plugin, "
+ "configure all settings, "
+ "access test site with the profile, "
+ "and specify the profile by --profile option.";
private static final String DEFAULT_TIMEOUT_MILLISEC = "30000";
private static class SROptions extends Options {
private static final long serialVersionUID = 1L;
private int i = 0;
public final Map