2017-02-15 54 views
0

allElement有315 webElement。我必須在我的數據庫表中保存9個元素。我怎麼能這樣做? 我試圖如何在幾次迭代中保存數據庫中的元素?

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

一個包含從輸入序列的開始元素的指定數量的IEnumerable。

allElement.Take(j+9)你總是從列表的開始。既然你總是從返回列表中取得前9個元素,它總會給你相同的元素。嘗試GetRange代替

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

請注意GetRande()不會在IList工作,只在List。更改IList<IWebElement> allElementList<IWebElement> allElement

+0

「cannt轉換源類型到目標類型」 錯誤發生改變的IList allElement列出 allElement – Tamim

+0

@Tamim加上'.ToList()''到'driver.FindElements' driver.FindElements(通過。 XPath(「// table [@ class ='TableText1'] [2]/tbody/tr/td [contains(@class,'Table_List')or contains(@class,'Table_List_diff')]」))。ToList );' – Guy

+0

謝謝它的作品:) – Tamim

相關問題