如何使用Selenium在光滑网格中水平滚动?

时间:2013-09-20 21:49:53

标签: c# selenium slickgrid webtest webautomation

所以我有一个使用光滑网格的网站。基本上当浏览器窗口最大化时,你仍然有水平滚动条(这是由用户设计)。现在在Web自动化测试中(使用selenium)我确实得到了正确的列数,但是没有滚动到右侧的selenium只给了我可见的列标题,而其他不可见的列返回空白或空字符串。我的问题是你们有类似的问题以及你是如何解决这个问题的。 到目前为止这是我的代码。但是当光滑网格没有滚动时没有加载新内容时它会返回空白。 我需要能够以某种方式向右滚动以获取所有列标题。

int GetColumnIndexByName(string columnName)
{
    VerifyComponentLoaded();
    var colHeaders = Driver.FindElements(By.XPath("somepath"));
    for (int i = 0; i < colHeaders.Count; i++)
    {
        if (colHeaders.ElementAt(i).Text == columnName)
            return i;                    
    }
    Assert.Fail("The columnName {0} was not found.", columnName);
}

1 个答案:

答案 0 :(得分:0)

您可以使用以下SlickGrid方法:

grid.setActiveCell(0,0);  // right before the for loop

然后在你的for循环中,在顶部:

grid.navigateRight();

这应该根据需要将每列放入视图中。但是你应该知道SlickGrid只渲染可见的列和行(加上一些缓冲区),因此信任DOM选择器进行测试是不明智的。特别是因为SlickGrid还将重用现有元素,并在垂直和水平滚动/分页时简单地替换内部文本。