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);
        }
예제 #2
0
        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);
        }