【问题标题】:How to scroll horizontally in slick grid using Selenium?如何使用 Selenium 在光滑的网格中水平滚动?
【发布时间】:2013-09-26 09:52:30
【问题描述】:

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

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);
}

【问题讨论】:

    标签: c# selenium slickgrid webtest webautomation


    【解决方案1】:

    您可以使用以下 SlickGrid 方法:

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

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

    grid.navigateRight();
    

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

    【讨论】:

    • 你能解释一下你所说的 slickgrid 方法是什么意思吗?是否有用于在 c# 中使用光滑网格的库?
    • @DoodleKana 不是我知道的,上面是你必须在页面上执行的 javascript。有关如何执行此操作的示例,请参见此处:stackoverflow.com/a/6285793/1397319
    • 感谢您的回复。是的,我知道 c# 中的那个 js 执行器。当我在上面执行 jscript 时,我得到“未知错误:未定义网格。”
    • 我也没有意识到我在一年前问过这个问题,今天又问了类似的问题,只是偶然发现了我一年前问过的同一个问题。这是我关于stackoverflow的新问题。 stackoverflow.com/questions/26104952/…
    • 经过仔细检查,我看到了 slick.column-select-plugin.js、slick.comment-plugin.js、slick.pjax-link-plugin.js、slick.rowselectionmodel.js,但我看不到 slick.grid.js ,我相信它是您提到的函数的声明位置。我不知道我的 slickgrid 网站在没有 slick.grid.js 的情况下如何工作。但我想这听起来更像是一种帮助文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 2016-09-30
    相关资源
    最近更新 更多