2017-02-15 14 views
0

Имеются 315 webElement в allElement. Я должен сохранить 9 элементов каждый в моей таблице базы данных. Как я могу это сделать? Я попыталсяКак сохранить элементы в DB в нескольких итерациях?

for (var i = 0; i<=find; i++) 
{ 
    IList<IWebElement> allElement = driver.FindElements(By.XPath("//table[@class='TableText1'][2]/tbody/tr/td[contains(@class, 'Table_List') or contains(@class, 'Table_List_diff')]")); 

    for (int j = 0; j < allElement.Count; j=j+9) 
    { 
     var list1 = allElement.Take(j+9).ToArray(); 
     try 
     { 
      var text = new access_event_logs(); 
      text.USERID = list1[0].Text; 
      text.DEPARTMENT = list1[3].Text; 
      text.LOCAL_TIMESTAMP = Convert.ToDateTime(list1[4].Text); 
      text.EVENTID = list1[5].Text; 
      text.TERMINALSN = list1[6].Text; 
      text.PhotoPath = list1[7].Text; 
      text.REMARKS = list1[8].Text; 
      text.ACCESSMETHOD = "fp"; 
      text.TERMINALIP = "09898"; 
      text.PHOTO = null; 
      text.PHOTOSIZE = 0; 
      text.RECLOGFROMIP = ""; 

      db.access_event_logs.Add(text); 
      db.SaveChanges(); 
     }  
    } 

я мог спасти только первый элемент 9 [0] до [8] .. как я могу сохранить все 315 элемент? У меня есть идея. Сначала сохраните 9 элементов, а затем удалите эти элементы из списка. Но я не мог этого сделать.

ответ

0

От Take() документов в MSDN

An IEnumerable, который содержит определенное число элементов с начала входной последовательности.

allElement.Take(j+9) Вы всегда берете с начала списка. Поскольку вы всегда берете первые 9 элементов из возвращаемого списка, он всегда будет давать вам те же элементы. Попробуйте GetRange вместо

var list1 = allElement.GetRange(j, 9).ToArray(); 

Обратите внимание GetRande() не будет работать на IList, только на List. Изменение IList<IWebElement> allElement в List<IWebElement> allElement

+0

"cannt преобразовать тип источника в целевой тип" ошибка изменить IList allElement к списку allElement – Tamim

+0

@Tamim добавить '.ToList()' 'в' driver.FindElements' driver.FindElements (К. XPath ("// table [@ class = 'TableText1'] [2]/tbody/tr/td [содержит (@class, 'Table_List') или содержит (@class, 'Table_List_diff')]")) ToList (); ' – Guy

+0

спасибо, что это работает :) – Tamim