Я видел много вопросов, имеющих отношение к этому здесь, но ни один из них не имеет никакого смысла для меня. Так что любой, кто мог бы помочь мне здесь.
Прежде всего я собираю данные с сайта Amazon и сохраняю данные в этом DataGridView
dataGridViewScraping Data:
dataGridViewASINs:
Я успешно очищаю данные первой страницы, но когда я пытаюсь почистить вторые данные и пытаюсь поместить данные в таблицу данных, я получаю сообщение об ошибке
индекс вне диапазона. Должен быть неотрицательным и **
Я также получаю сообщение об ошибке, когда цикл возвращается во второй раз, и первые данные, которые я помещаю в свой DataGridView, имеют заголовок:
for (int i = 0; i < dataGridViewASINs.Rows.Count - 1; i++)
{
//Getting Title
string title = driver.FindElement(By.Id("productTitle")).GetAttribute("innerText");
dataGridViewScrapingData.Rows[i].Cells[cols].Value = title;
}
Я использую этот код для помещения данных в таблицу данных, все остальные столбцы кода аналогичны тому, что я использую
Ряды [индекс] .Cells [Indexing]
для всех столбцов, но для столбцов Combobox я не использовал это индексирование, я думаю, что это также работает только для первой итерации
for (int i = 0; i < dataGridViewASINs.Rows.Count - 1; i++)
{
List<IWebElement> imageCounts = driver.FindElements(By.XPath("//ul[@class='a-unordered-list a-nostyle a-button-list a-vertical a-spacing-top-extra-large']//li[@class='a-spacing-small item imageThumbnail a-declarative']//span[@class='a-button-text']//img")).ToList();
element = driver.FindElement(By.Id("landingImage"));
comboState.Items.Add(element.GetAttribute("src"));
for (int j = 0; j < imageCounts.Count - 1; j++)
{
//Clicking that Element
string GenricXpath = "//ul[@class='a-unordered-list a-nostyle a-button-list a-vertical a-spacing-top-extra-large']//li[" + (j + 5).ToString() + "]//span[1]//span[1]//span[1]//input[1]";
element = driver.FindElement(By.XPath(GenricXpath)); element.Click();
//Extracting URL now
string AnotherXpath = "//li[@class='image item itemNo" + (j + 1).ToString() + " maintain-height selected']//img";
element = driver.FindElement(By.XPath(AnotherXpath)); comboState.Items.Add(element.GetAttribute("src"));
}
dataGridViewScrapingData.Columns.Add(comboState);
}
Кроме этого я также хочу знать после помещения данных в datagridviewScrapingData. Я не знаю, как я могу получить обратно все данные, которые находятся в столбце комбинированного списка в DataGridViewScraping Data. Я хочу получить данные в список строк из datagridviewScrapingData, где я сохранил все свои данные. Я также видел много вопросов, имеющих отношение к этому, здесь, на stackoverflow, но ни один из них не имеет для меня никакого смысла.