2017-04-06 44 views
0

我想测试表中名字列的排序是否正常工作。该表由3列“名”,“姓”和“电子邮件”组成。 这是第一个名字列如何:

First Name column
Columns
如何将表格的值存储在列表中并对其进行排序?

我可以在表中获取的所有“名”值,并看到控制台所有。
我的问题是如何将这个值存储在一个列表中,然后对它们进行排序,然后将它们与表值进行比较。
这里是代码:

代码
int numOfClicks = Int32.Parse(driver.FindElement(By.XPath(".//*[@id='injectview']/div/div/div/table[2]/tbody/tr/td[1]/ul/li[8]/a")).Text); 
     Console.WriteLine(numOfClicks); 
     driver.FindElement(By.XPath(".//*[@id='injectview']/div/div/div/table[2]/tbody/tr/td[1]/ul/li[1]/a")).Click(); 
     Thread.Sleep(2000); 

     for (int i = 1; i <= numOfClicks; i++) 
     { 
      IList<IWebElement> records_in_page = driver.FindElements(By.XPath(".//*[@id='injectview']/div/div/div/table[1]/tbody/tr/td[1]")); 

      for (int j = 1; j <= records_in_page.Count; j++) 
      { 

       string firstName = driver.FindElement(By.XPath(".//*[@id='injectview']/div/div/div/table[1]/tbody[" + (j + 1) + "]/tr/td[1]")).Text; 
       Console.WriteLine(firstName); 

      } 
      driver.FindElement(By.CssSelector("#injectview > div > div > div > table:nth-child(3) > tbody > tr > td:nth-child(1) > ul > li.pagination-next.ng-scope > a")).Click(); 
     } 

剩下的只是导航的页面,我只是发送的获取列值的一部分。
谢谢你的帮助。

回答

3

您必须将您的名字保存在列表中,然后进行比较。 如果你有名字的Id/Class名字,你可以用更好的方法得到所有的名字

List<string> fromTable = new List<string>(); 


    for (int j = 1; j <= records_in_page.Count; j++) 
    { 
    string firstName = driver.FindElement(By.XPath(".//* 
    [@id = 'injectview']/div/div/div/table[1]/tbody[" + (j + 1) + 
    "]/tr/td[1]")).Text 
    fromTable.Add(firstName) 
    } 

    public bool Comparer(List<string> fromTabel, List<string> fromDb) 
    { 
     bool equals = false; 
     if(fromDb.Count().Equals(fromTabel.Count())) 
     { 
       foreach (var name in fromDb) 
       { 
       equals = fromTabel.Any(n => n == name); 
       if(equals == false) 
        return equals; 
       } 

     return equals; 
     } 
    } 
+0

谢谢。对于这一行:'firstNames.Add(firstName)'我得到这个错误:名称'firstNames'在当前上下文中不存在。 –

+1

fromTable.Add(firstName) – OriBr

相关问题