public ActionResult SearchResults(string searchTerm)
        {
            // validate input
            if (string.IsNullOrWhiteSpace(searchTerm))
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }

            _IndexSearchResultsPartialViewModel model = new _IndexSearchResultsPartialViewModel();

            WebScraper webScraper = new WebScraper();

            model.SearchResults = webScraper.GetSearchResults(searchTerm);

            return(PartialView("_IndexSearchResultsPartial", model));
        }
        public ActionResult SearchResults(string searchTerm)
        {
            // validate input
            if (string.IsNullOrWhiteSpace(searchTerm))
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }

            _IndexSearchResultsPartialViewModel model = new _IndexSearchResultsPartialViewModel();


            // Search engines are saved in Web.config with format of:
            // searchEngineName;url;CSSSelector,searchEngineName;url;CSSSelector
            List <string> searchEngines = ConfigurationManager.AppSettings["SearchEngines"].Split(',').ToList();

            using (ChromeDriver driver = new ChromeDriver())
            {
                foreach (string searchEngine in searchEngines)
                {
                    List <string> searchParameters = searchEngine.Split(';').ToList();


                    string searchEngineName = searchParameters[0];
                    string url         = searchParameters[1];
                    string cssSelector = searchParameters[2];

                    url += HttpUtility.UrlEncode(searchTerm.Trim());

                    var elements = GetSearchResultElements(searchEngineName, driver, url, By.CssSelector(cssSelector));

                    foreach (IWebElement element in elements)
                    {
                        if (!String.IsNullOrEmpty(element.Text))
                        {
                            //string resultURL = element.FindElement(By.CssSelector("a.result__a")).GetAttribute("href").ToString().Trim();
                            model.SearchResults.Add(new SearchResultModel {
                                SearchEngine = searchEngineName, ResultText = element.Text
                            });                                                                                                            //, ResultURL = resultURL
                        }
                    }
                }
            };

            return(PartialView("_IndexSearchResultsPartial", model));
        }