Как правильно парсить selenium несколько значений?

Всем привет. Мне нужно спарсить одновременно - название товара, цену и скидку Как это правильно делать? вот верно?

while(true){
   List<IWeblement> IWebElement = driver.FindElements(By.Xpath("тут путь к общему контейнеру"));

   IWeblement zagolovok =  driver.FindElements(By.Xpath("путь к одному элементу")).GetAttribute("InnerText");
   // IWeblement price ...
   // IWeblement discount ...

   // Тут переключение страницы

}

Думаю, идея понятна, если нет добавлю данные


Ответы (1 шт):

Автор решения: artsmm

Набросал код:

bdhelp.OpenConnection();

                        while (true)
                        {
                            List<IWebElement> allElms = driver.FindElements(By.XPath("//li[contains(@class, 'j-product-item')]")).ToList();

                            foreach(var elm in allElms)
                            {
                                m++;
                                VariablesForReport.tovName = driver.FindElement(By.XPath(".//p[contains(@class, 'goods-card__description')]/span|//span[contains(@class, 'goods-name')]")).GetAttribute("innerText");
                                VariablesForReport.tovPriceWithDiscount = driver.FindElement(By.XPath(".//del[contains(@class, 'goods-card__price-last')]|//span[contains(@class, 'price-old-block')]/del")).GetAttribute("innerText");
                                VariablesForReport.tovPriceWithoutDiscount = driver.FindElement(By.XPath(".//del[contains(@class, 'goods-card__price-last')]|//span[contains(@class, 'price-old-block')]/del")).GetAttribute("innerText");
                                VariablesForReport.cardNum = driver.FindElement(By.XPath("//li[contains(@class, 'goods-card')]|//div[contains(@class, 'product-card-overflow')]/div/div[contains(@id,'')]")).ToString();

                                var query = $@"INSERT INTO `parser_report`(`product_name`) VALUES('{VariablesForReport.tovName}')";
                                var command = new MySqlCommand(query, bdhelp.Connection);
                                command.ExecuteNonQuery();

                                var query1 = $@"UPDATE `parser_report` SET `price_w_discount`='{VariablesForReport.tovPriceWithDiscount}' WHERE `Num` = {m}";
                                var command1 = new MySqlCommand(query1, bdhelp.Connection);
                                command1.ExecuteNonQuery();

                                var query2 = $@"UPDATE `parser_report` SET `price_without_discount`='{VariablesForReport.tovPriceWithoutDiscount}' WHERE `Num` = {m}";
                                var command2 = new MySqlCommand(query2, bdhelp.Connection);
                                command2.ExecuteNonQuery();

                                var query3 = $@"UPDATE `parser_report` SET `vendor_code`='{VariablesForReport.cardNum}' WHERE `Num` = {m}";
                                var command3 = new MySqlCommand(query3, bdhelp.Connection);
                                command3.ExecuteNonQuery();

                            }
                        }

                        bdhelp.CloseConnection();
→ Ссылка