public static GalenPageAction readFrom(String actionText) {
    String[] args = CommandLineParser.parseCommandLine(actionText);

    if (args.length < 2) {
      throw new SyntaxException(Line.UNKNOWN_LINE, "Cannot parse: " + actionText);
    }

    if (args[0].equals("inject")) {
      return injectActionFrom(args);
    } else if (args[0].equals("run")) {
      return runActionFrom(args);
    } else if (args[0].equals("check")) {
      return checkActionFrom(args, actionText);
    } else if (args[0].equals("cookie")) {
      return cookieActionFrom(args);
    } else if (args[0].equals("open")) {
      return openActionFrom(args);
    } else if (args[0].equals("resize")) {
      return resizeActionFrom(args);
    } else if (args[0].equals("wait")) {
      return waitActionFrom(args);
    } else if (args[0].equals("properties")) {
      return propertiesActionFrom(args);
    } else if (args[0].equals("dump")) {
      return dumpPageActionFrom(args, actionText);
    } else throw new SyntaxException(Line.UNKNOWN_LINE, "Unknown action: " + args[0]);
  }