【问题标题】:JavaScript scroll over element works in Chrome but not in IE11JavaScript 滚动元素在 Chrome 中有效,但在 IE11 中无效
【发布时间】:2018-07-23 06:38:23
【问题描述】:

我正在用 selenium C# 编写一个 e2e 测试

我需要滚动到 kendo-grid 滚动条元素的底部(滚动任何其他元素,如网格体似乎不起作用)。执行此操作的代码是:

$('div.k-scrollbar-vertical')[0].scrollTo(0,12000)

在 Chrome 控制台和 C# 中通过 IJavaScriptExecutor 可以正常工作,但在 IE11 中尝试会引发错误:

Object doesn't support property or method 'scrollTo'

有什么方法可以使它兼容两种浏览器或任何解决方法?

【问题讨论】:

    标签: javascript c# google-chrome internet-explorer kendo-grid


    【解决方案1】:

    为什么不使用更受支持的机制?

    const o = document.querySelector('div.k-scrollbar-vertical')
    o.scrollTop = o.scrollHeight
    

    如果你的版本不支持const,你可以使用var

    【讨论】:

    • 大多数情况下都有效,但只能以这样的形式出现:js.ExecuteScript("document.querySelector('div.k-scrollbar-vertical').scrollTop=document.querySelector('div.k-scrollbar-vertical').scrollHeight;"); 版本:js.ExecuteScript("var bar = document.querySelector('div.k-scrollbar-vertical');" + "bar.scrollTop = bar.scrollHeight;"); 不起作用,bar.scrollHeight 出于某种原因抛出空引用。我错过了什么吗?
    • 不确定js 是什么。但是很有可能您的 js 是在页面实际加载之前执行的,因此还没有 div.k-scrollbar-vertical!
    • 抱歉,错过了。 js 是一个 C# IJavascriptExecutor 实例。您可能是对的,我添加了等待滚动条可见性并且它起作用了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    相关资源
    最近更新 更多