2017-02-15 52 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

相关问题