如何使用硒在光滑的网格中水平滚动

本文关键字:网格 水平 滚动 何使用 | 更新日期: 2023-09-27 18:32:22

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

如何使用硒在光滑的网格中水平滚动

您可以使用以下 SlickGrid 方法:

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

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

grid.navigateRight();

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