public static List <Telefono> Buscar(String marca, String modelo) { driver = ChromeConnection.initConnection(urlConnection); List <Telefono> telefonos = new List <Telefono>(); ChromeConnection.WaitToAppear(driver, new TimeSpan(0, 0, 10), By.Name("query")); IWebElement cajaBusqueda = driver.FindElement(By.Name("query")); cajaBusqueda.SendKeys("Smartphon " + marca + " " + modelo); cajaBusqueda.SendKeys(Keys.Enter); ChromeConnection.WaitToAppear(driver, new TimeSpan(0, 0, 3), By.CssSelector("a[data-id='1116']")); try { IWebElement smartphoneCheckBox = driver.FindElement(By.CssSelector("a[data-id='1116']")); smartphoneCheckBox.Click(); Thread.Sleep(3000); } catch (Exception) { driver.Quit(); return(telefonos); } ChromeConnection.WaitToAppear(driver, new TimeSpan(0, 0, 3), By.ClassName("tarjeta-articulo__elementos-basicos")); List <IWebElement> elementos = driver.FindElements(By.ClassName("tarjeta-articulo__elementos-basicos")).ToList(); foreach (IWebElement elemento in elementos) { string nombre = elemento.FindElement(By.ClassName("tarjeta-articulo__nombre")).Text; string precioActual = elemento.FindElement(By.ClassName("tarjeta-articulo__precio-actual")).Text; string precioOriginal; try { precioOriginal = elemento.FindElement(By.ClassName("tarjeta-articulo__pvp")).Text; } catch (Exception) { precioOriginal = precioActual; } if (pasaFiltroNombre(nombre, marca, modelo)) { Telefono tlf = new Telefono(nombre, precioActual, precioOriginal, web); telefonos.Add(tlf); } } driver.Quit(); return(telefonos); }
public static List <Telefono> Buscar(String marca, String modelo) { driver = ChromeConnection.initConnection(urlConnection); List <Telefono> telefonos = new List <Telefono>(); ChromeConnection.WaitToAppear(driver, new TimeSpan(0, 0, 10), By.Name("Search")); IWebElement cajaBusqueda = driver.FindElement(By.Name("Search")); cajaBusqueda.SendKeys(marca + " " + modelo); cajaBusqueda.Submit(); try { ChromeConnection.WaitToAppear(driver, new TimeSpan(0, 0, 10), By.CssSelector("span[data-category='8!1,8020!2']")); IWebElement smartphoneCheck = driver.FindElement(By.CssSelector("span[data-category='8!1,8020!2']")); smartphoneCheck.Click(); } catch (Exception) { driver.Quit(); return(telefonos); } ChromeConnection.WaitToAppear(driver, new TimeSpan(0, 0, 10), By.ClassName("Article-item")); List <IWebElement> elementos = driver.FindElements(By.ClassName("Article-item")).ToList(); foreach (IWebElement elemento in elementos) { string nombre = elemento.FindElement(By.ClassName("Article-title")).Text; string precioActual = string.Empty; string precioOriginal = string.Empty; try { precioActual = elemento.FindElement(By.ClassName("price'")).Text; } catch (Exception) { try { precioActual = elemento.FindElement(By.ClassName("userPrice")).Text; } catch (Exception) { } } try { precioActual = elemento.FindElement(By.ClassName("oldPrice")).Text; } catch (Exception) { precioOriginal = precioActual; } if (precioOriginal.Equals(string.Empty)) { precioOriginal = precioActual; } if (pasaFiltroNombre(nombre, marca, modelo)) { Telefono tlf = new Telefono(nombre, precioActual, precioOriginal, web); telefonos.Add(tlf); } } driver.Quit(); return(telefonos); }