2017-04-06 65 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

相關問題