使用分页(Selenium webdriver C#)

时间:2013-01-01 10:54:27

标签: c# selenium selenium-webdriver

我在自动化分页测试时遇到了问题。 我的代码能够在第一页上遍历表格,如果“找不到搜索元素”,也可以单击下一页。但是,问题在于,对于第二页,它没有保存/获取表的数据。虽然所使用的表类对所有页面都是静态的。 请帮我解决这个问题。这是我的一大堆代码:

IWebElement pagingInfo = webDriver.FindElement(By.ClassName("Dj")); //Getting text from Page info in the form of  "1-emailsPerPage of totalNumberOfEmails"
string[] stringArray = pagingInfo.Text.Split(' ');
int totalNumberOfEmails = Convert.ToInt32(stringArray[2]);
int emailsPerPage = Convert.ToInt32(stringArray[0].Substring(2));
int clickCount = totalNumberOfEmails / emailsPerPage;

for (int i = 0; i <= clickCount; i++)
{
    IWebElement tableInbox = webDriver.FindElement(By.ClassName("Cp")).FindElement(By.ClassName("F"));
    IList<IWebElement> rowsCollection = tableInbox.FindElements(By.TagName("tr"));

    foreach (IWebElement row in rowsCollection)
    {
        IList<IWebElement> columnCollection = row.FindElements(By.TagName("td"));
        if (columnCollection[5].Text.Contains("Fwd: Security"))
        {
            Console.WriteLine("Record found");
            recordFound = true;
            break;
        }
    }
    if (recordFound == true)
        break;
    webDriver.FindElement(By.ClassName("ar5")).FindElement(By.ClassName("amJ")).Click();
    Thread.Sleep(5000);
}

if (recordFound == true)
    Console.WriteLine("Record Found");
else
    Console.WriteLine("Record Not Found");

请帮助!!在此先感谢:)

1 个答案:

答案 0 :(得分:0)

实际上,该页面使用的是Ajax,所以我必须使用iFrame来浏览每个页面的同一个表。 使用iFrame解决了我的目的。 经过大量的研究,问题终于得到了解决。 :)