//根据指令执行相应的操作 private void handleByCommand(String line) { try { String command = CodeAnalysis.getCommandString(line); String[] value = CodeAnalysis.getValueString(line); switch (command) { case CodeAnalysis.ApplicationCommand.COMMAND_CLEAR: command_Clear(); return; case CodeAnalysis.ApplicationCommand.COMMAND_CLOSE_APPLICATION: command_CloseApplication(); return; case CodeAnalysis.ApplicationCommand.COMMAND_LOAD_WEB_PAGE: command_LoadWebPage(value[0]); return; case CodeAnalysis.ApplicationCommand.COMMAND_SHUT_DOWN: command_ShutDown(); return; case CodeAnalysis.ProgressCommand.COMMAND_BREAK_LOOP: command_BreakLoop(); return; case CodeAnalysis.ProgressCommand.COMMAND_END_IF: return; case CodeAnalysis.ProgressCommand.COMMAND_END_LOOP: command_EndLoop(); return; case CodeAnalysis.ProgressCommand.COMMAND_IF: command_If(value[0], value[1], value[2]); return; case CodeAnalysis.ProgressCommand.COMMAND_LOOP: return; case CodeAnalysis.ProgressCommand.COMMAND_PAUSE: command_Pause(int.Parse(value[0]), value[1]); return; case CodeAnalysis.ProgressCommand.COMMAND_TERMINATE: command_Terminate(); return; case CodeAnalysis.ProgressCommand.COMMAND_WAIT_FOR_DOCUMENT: command_WaitForDocument(); return; case CodeAnalysis.VariableCommand.COMMAND_ADD: command_Add(value[0], value[1]); return; case CodeAnalysis.VariableCommand.COMMAND_SET_VAR: command_SetVar(value[0], value[1]); return; case CodeAnalysis.WebElementCommand.COMMAND_CLICK_ELEMENT: command_ClickElement(value[0]); return; case CodeAnalysis.WebElementCommand.COMMAND_CRAWL_ELEMENT: command_CrawlElement(value[0], value[1]); return; case CodeAnalysis.WebElementCommand.COMMAND_RUN_SCRIPT_FUNC: command_RunScriptFunc(value[0], value[1]); return; case CodeAnalysis.VariableCommand.COMMAND_SAVE_VAR: command_SaveVar(value[0], value[1], value[2]); return; case CodeAnalysis.WebElementCommand.COMMAND_SET_CHECK_BOX_VALUE: command_SetCheckBoxValue(value[0], value[1]); return; case CodeAnalysis.WebElementCommand.COMMAND_SET_ELEMENT_VALUE: command_SetElementValue(value[0], value[1]); return; case CodeAnalysis.VariableCommand.COMMAND_MUL: command_Mul(value[0], value[1]); return; case CodeAnalysis.VariableCommand.COMMAND_CONNECT_VAR: command_connectVar(value[0], value[1]); return; case CodeAnalysis.VariableCommand.COMMAND_LOAD_DATA_TO_VAR: command_LoadDataToVar(value[0], value[1]); return; case CodeAnalysis.VariableCommand.COMMAND_PRINT: command_Print(value[0]); return; case CodeAnalysis.WebElementCommand.COMMAND_CRAWL_CONTENT: command_CrawlContent(value[0], value[1], value[2]); return; case CodeAnalysis.WebElementCommand.COMMAND_CLICK_ELEMENT_BY_VALUE: command_ClickElementByType(value[0]); return; case CodeAnalysis.WebElementCommand.COMMAND_RUN_PARAM_FUNC: command_RunParamFunc(value[0], value[1], value); return; case "": return; } richTextBox_ApplicationInfo.Invoke(new MethodInvoker(delegate { richTextBox_ApplicationInfo.AppendText("undefine command!\n"); })); command_Terminate(); } catch (Exception e) { richTextBox_ApplicationInfo.Invoke(new MethodInvoker(delegate { richTextBox_ApplicationInfo.AppendText(e.ToString() + "\n"); })); } }
//检查代码正确性 private String checkCommand(String line, int index, String[] memery) { String command = CodeAnalysis.getCommandString(line); String[] value = CodeAnalysis.getValueString(line); switch (command) { case CodeAnalysis.ApplicationCommand.COMMAND_CLEAR: return(CodeAnalysis.ApplicationCommand.checkApplicationCommand(command, value)); case CodeAnalysis.ApplicationCommand.COMMAND_CLOSE_APPLICATION: return(CodeAnalysis.ApplicationCommand.checkApplicationCommand(command, value)); case CodeAnalysis.ApplicationCommand.COMMAND_LOAD_WEB_PAGE: return(CodeAnalysis.ApplicationCommand.checkLoadWebPage(command, value)); case CodeAnalysis.ApplicationCommand.COMMAND_SHUT_DOWN: return(CodeAnalysis.ApplicationCommand.checkApplicationCommand(command, value)); case CodeAnalysis.ProgressCommand.COMMAND_BREAK_LOOP: return(CodeAnalysis.ProgressCommand.checkBreakLoop(memery, index)); case CodeAnalysis.ProgressCommand.COMMAND_END_IF: return(CodeAnalysis.COMMAND_CORRECT); case CodeAnalysis.ProgressCommand.COMMAND_END_LOOP: return(CodeAnalysis.COMMAND_CORRECT); case CodeAnalysis.ProgressCommand.COMMAND_IF: return(CodeAnalysis.ProgressCommand.checkIfSymbol(command, value)); case CodeAnalysis.ProgressCommand.COMMAND_LOOP: return(CodeAnalysis.COMMAND_CORRECT); case CodeAnalysis.ProgressCommand.COMMAND_PAUSE: return(CodeAnalysis.ProgressCommand.checkPause(command, value)); case CodeAnalysis.ProgressCommand.COMMAND_TERMINATE: return(CodeAnalysis.COMMAND_CORRECT); case CodeAnalysis.ProgressCommand.COMMAND_WAIT_FOR_DOCUMENT: return(CodeAnalysis.COMMAND_CORRECT); case CodeAnalysis.VariableCommand.COMMAND_ADD: return(CodeAnalysis.VariableCommand.checkParameter2(command, value)); case CodeAnalysis.VariableCommand.COMMAND_SET_VAR: return(CodeAnalysis.VariableCommand.checkParameter2(command, value)); case CodeAnalysis.WebElementCommand.COMMAND_CLICK_ELEMENT: return(CodeAnalysis.WebElementCommand.checkParameter1(command, value)); case CodeAnalysis.WebElementCommand.COMMAND_CRAWL_ELEMENT: return(CodeAnalysis.WebElementCommand.checkCrawlElement(command, value)); case CodeAnalysis.WebElementCommand.COMMAND_RUN_SCRIPT_FUNC: return(CodeAnalysis.WebElementCommand.checkRunScriptFunc(command, value)); case CodeAnalysis.VariableCommand.COMMAND_SAVE_VAR: return(CodeAnalysis.VariableCommand.checkSaveVar(command, value)); case CodeAnalysis.WebElementCommand.COMMAND_SET_CHECK_BOX_VALUE: return(CodeAnalysis.WebElementCommand.checkParameter2(command, value)); case CodeAnalysis.WebElementCommand.COMMAND_SET_ELEMENT_VALUE: return(CodeAnalysis.WebElementCommand.checkParameter2(command, value)); case CodeAnalysis.VariableCommand.COMMAND_MUL: return(CodeAnalysis.VariableCommand.checkParameter2(command, value)); case CodeAnalysis.VariableCommand.COMMAND_CONNECT_VAR: return(CodeAnalysis.VariableCommand.checkParameter2(command, value)); case CodeAnalysis.VariableCommand.COMMAND_LOAD_DATA_TO_VAR: return(CodeAnalysis.VariableCommand.checkLoadDataToVar(command, value)); case CodeAnalysis.VariableCommand.COMMAND_PRINT: return(CodeAnalysis.VariableCommand.checkPrint(command, value)); case CodeAnalysis.WebElementCommand.COMMAND_CRAWL_CONTENT: return(CodeAnalysis.WebElementCommand.checkCrawlContent(command, value)); case CodeAnalysis.WebElementCommand.COMMAND_CLICK_ELEMENT_BY_VALUE: return(CodeAnalysis.WebElementCommand.checkParameter1(command, value)); case CodeAnalysis.WebElementCommand.COMMAND_RUN_PARAM_FUNC: return(CodeAnalysis.WebElementCommand.checkRunParamFunc(command, value)); case "": return(CodeAnalysis.COMMAND_CORRECT); } return("未定义的指令“" + command + "”"); }