Консоль не записывает никакого значения - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь очистить books.toscrape.com все кажется идеальным, но ничего не выводится на консоль.

Я уверен, что XPath верны, а синтаксис правильный.

Я не вижу ошибок или предупреждений.

Понятия не имею, что я могу попробовать для этой проблемы.

using System;
using System.Windows;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using System.Data;
using System.Collections.Generic;

namespace book_scrapping
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {



        DataTable table = new DataTable();
        public MainWindow()
        {
            InitializeComponent();

        }

        string user_url;
        class Book
        {

            public string Titlex { get; set; }
            public string Price { get; set; }
            public string Rate { get; set; }


        }


        public void Scrap()
        {
            var books = new List<Book>();
            IWebDriver driver = new FirefoxDriver();
            user_url = Textbox1.Text;
            int.TryParse(Textbox2.Text, out var x);
            for (int i = 1; i < x; i++)
            {
                driver.Url = "http://" + user_url + "/catalogue/" + "page-" + i + ".html";
                var element = driver.FindElements(By.XPath("//article[@class='product_pod']"));
                foreach (var elements in element) {

                    var book = new Book
                    {
                        Titlex = driver.FindElement(By.XPath("//h3/a")).Text,
                        Price = driver.FindElement(By.XPath("//p[@class='price_color']")).Text,
                        Rate = driver.FindElement(By.XPath("//article/p")).GetAttribute("class")?.Replace("star-rating ", ""),

                    };
                    foreach (var a in books)
                    {

                        Console.WriteLine($"{a.Titlex} {a.Price} {a.Rate}");

                   }

                }


            }

        }


        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Scrap();

        }


    }

}

Я ожидаю вывод заголовка,цена, оценить как текст, как Привет мир 50 три, или что-то подобное

1 Ответ

0 голосов
/ 21 сентября 2019

Ваш список книг пуст, попробуйте это

books.Add(new Book
{
   Titlex = driver.FindElement(By.XPath("//h3/a")).Text,
   Price = driver.FindElement(By.XPath("//p[@class='price_color']")).Text,
   Rate = driver.FindElement(By.XPath("//article/p")).GetAttribute("class")?.Replace("star-rating ", ""),

});

вместо:

var book = new Book
{
   Titlex = driver.FindElement(By.XPath("//h3/a")).Text,
   Price = driver.FindElement(By.XPath("//p[@class='price_color']")).Text,
   Rate = driver.FindElement(By.XPath("//article/p")).GetAttribute("class")?.Replace("star-rating ", ""),

};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...