如何将表中的值存储在列表中并对其进行排序?

Sam*_*des 0 c# selenium selenium-webdriver

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

名字列的样子名字列

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

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();
        }
Run Code Online (Sandbox Code Playgroud)

剩下的代码只是导航到页面,我只是发送了获取列值的部分。
谢谢您的帮助。

小智 6

您必须将您的名字保存在列表中,然后进行比较。如果您使用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;
        }
    }
Run Code Online (Sandbox Code Playgroud)