0

所以我有一个使用光滑网格的网站。基本上,当浏览器窗口最大化时,您仍然有水平滚动条(这是由用户设计的)。现在在 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);
}
4

1 回答 1

0

您可以使用以下 SlickGrid 方法:

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

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

grid.navigateRight();

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

于 2013-09-22T19:13:03.487 回答