public object Execute() { string result = string.Join(",", Commands.Select(_ => _.Execute())); OutputSingleton.WriteToTextOutputters(result); return(result); }
public void StartScript(string scriptText) { using (_SeleniumExecutionEngine = new SeleniumExecution.SeleniumExecutionEngine(RunOptions.WebDriverPath, new SeleniumExecutionEngineOptions() { DisableWebSecurity = RunOptions.DisableWebSecurity, RunHeadlessBrowser = RunOptions.NoBrowser })) { _CrawlLangEngine = new CrawlLangEngine(scriptText, _SeleniumExecutionEngine); _CrawlLangEngine.ParseScript(); if (_CrawlLangEngine.HasErrors) { ErrorMessages = _CrawlLangEngine.Errors; } else { ExecutionPlan plan = _CrawlLangEngine.GenerateExecutionPlan(); try { _SeleniumExecutionEngine.StartEngine(); IsRunning = true; OutputSingleton.ClearAllOutputters(); if (!string.IsNullOrWhiteSpace(RunOptions.OutputFilePath)) { CreepyCrawly.Output.OutputSingleton.CreateFileTextOutputter(RunOptions.OutputFilePath); } if (!string.IsNullOrWhiteSpace(RunOptions.ImageOutputDirectory)) { CreepyCrawly.Output.OutputSingleton.CreateImageFileOutputter(RunOptions.ImageOutputDirectory); } CreepyCrawly.Output.OutputSingleton.CreateStringOutputter(); CreepyCrawly.Output.OutputSingleton.AssignEventHandlerToStringOutputters(_OutputEventHandler); if (_SeleniumExecutionEngine.IsEngineOk) { plan.Commands.ForEach(cmd => { cmd.Execute(); }); } else { CreepyCrawly.Output.OutputSingleton.WriteToStringOutputters("Engine wasn't started :(\nMaybe you are missing an appropriate chromedriver in the app root directory."); } } catch (Exception e) { if (IsRunning) { CreepyCrawly.Output.OutputSingleton.WriteToStringOutputters(string.Format("An error occurred during script execution with message:\n{0}\nSee the following stacktrace:\n{1}", e.Message, e.StackTrace)); } } } } }
public object Execute() { try { object result = Execution.Invoke(Selector, Regex); OutputSingleton.WriteToTextOutputters(result); return(result); } catch (Exception e) { ErrorHandler.ReportCommandExecutionFailed(e, Name); return(null); } }
public object Execute() { try { object result = Execution.Invoke(Selector); string fileName = Guid.NewGuid().ToString(); OutputSingleton.WriteToImageOutputtersWithFileName(result, fileName); return(fileName); } catch (Exception e) { ErrorHandler.ReportCommandExecutionFailed(e, Name); return(null); } }
public object Execute() { try { string[] results = (string[])Execution.Invoke(Selector); foreach (var result in results) { OutputSingleton.WriteToImageOutputters(result); } return(1); } catch (Exception e) { ErrorHandler.ReportCommandExecutionFailed(e, Name); return(null); } }