2014-11-24 44 views
2

在量角器端到端测试中,如何设置元素(例如div)的滚动值,而不是整个页面。量角器发送滚动命令到元素(div等)

通过jQuery,你可以简单地调用例如$('.myElement').scrollTop(100);。这是因为在我的端到端测试中,我想测试一个特定的<div>已滚动时,我想声明必须滚动另一个<div>才能保持同步。

回答

0

硒不提供在元素级别滚动的方法。

如果jQuery代码将滚动,然后运行在浏览器内部是这样的代码

driver.executeScript("$('.myElement').scrollTop(100);"); 
+0

是的你是对的,你需要使用'browser.executeScript(“$('。myElement')。scrollTop(100);”);'。我正在尝试这个选项,并认为它实际上并不奏效。我试图通过调用'var value = browser.executeScript(“$('。myElement')。scrollTop(100);”);'并且当我不得不添加'return'关键字。我必须做'var value = browser.executeScript(“return $('。myElement')。scrollTop(100);”);'。谢谢! :) – 2014-11-25 17:42:06

3

我需要相同的机制,我下面UTIL方法创建,它为我工作得很好。 ;)

element.getLocation().then(function (location) { 
     return browser.executeScript('window.scrollTo(' + location.x + ' , ' + location.y + ')'); 
    }); 

在顺便说一句,下面的也可以工作:

browser.actions().mouseMove(element).perform(); 

选择您的最爱。 ;)

我更喜欢第一个,因为第二个也触发mouseOver风格的事件。