使用动态列表c#验证xpath的最后一个元素的数据

时间:2016-11-21 01:35:24

标签: c# selenium xpath

DataList

从上面的图片中我添加的新数据被添加到最后一页,但可能有类似的名称,我需要使用ID验证数据,如图所示。所以我试图找出从id存储文本值的方法,并且当添加新数据时,它应该验证最后新添加的ID。有任何想法吗?

        int i = 1;
        bool found = false;
        string ID;
        try
        {

            IWebElement LastPage = Driver.driver.FindElement(By.XPath("html/body/div[4]/div/div/div[2]/table/tbody/tr[8]/td[1]"));
            LastPage.Click();
            for (i = 1; i <= 10; i++) ;
            {
                ID= Driver.driver.FindElement(By.XPath("html/body/div[4]/div/div/div[2]/table/tbody/tr[" + i + "]/td[1]")).Text;
                if (??)
            }

2 个答案:

答案 0 :(得分:4)

正如@ viet-pham所说,使用last是一个好主意,你也可以使用相对的xpath,如:

//table/tbody/tr[last()-1]/td

并且您不需要使用[1],因为您使用的是FindElement而不是FindElements,并且正在返回找到的第一个元素。

答案 1 :(得分:0)

您不需要使用for循环来获取最后一项,只需将last()设置为选择最终的 tr元素

在您的情况下

IWebElement lastElement = Driver.driver.FindElement(By.XPath("(html/body/div[4]/div/div/div[2]/table/tbody/tr)[last()]/td[1]"));
ID = lastElement.Text;

另外:因为最后一行是总数,所以你必须更改为它之前的行=&gt; [最后() - 1]