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

时间:2017-04-06 03:42:20

标签: c# selenium selenium-webdriver

我想测试表中的名字列的排序是否正常工作。该表由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();
        }

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

1 个答案:

答案 0 :(得分:5)

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

<div class="col-md-8" data-bind="datepickerCtrl: {valueName:'dtS'}"></div>