在量角器端到端测试中,如何设置元素(例如div)的滚动值,而不是整个页面。量角器发送滚动命令到元素(div等)
通过jQuery,你可以简单地调用例如$('.myElement').scrollTop(100);
。这是因为在我的端到端测试中,我想测试一个特定的<div>
已滚动时,我想声明必须滚动另一个<div>
才能保持同步。
在量角器端到端测试中,如何设置元素(例如div)的滚动值,而不是整个页面。量角器发送滚动命令到元素(div等)
通过jQuery,你可以简单地调用例如$('.myElement').scrollTop(100);
。这是因为在我的端到端测试中,我想测试一个特定的<div>
已滚动时,我想声明必须滚动另一个<div>
才能保持同步。
硒不提供在元素级别滚动的方法。
如果jQuery代码将滚动,然后运行在浏览器内部是这样的代码
driver.executeScript("$('.myElement').scrollTop(100);");
我需要相同的机制,我下面UTIL方法创建,它为我工作得很好。 ;)
element.getLocation().then(function (location) {
return browser.executeScript('window.scrollTo(' + location.x + ' , ' + location.y + ')');
});
在顺便说一句,下面的也可以工作:
browser.actions().mouseMove(element).perform();
选择您的最爱。 ;)
我更喜欢第一个,因为第二个也触发mouseOver风格的事件。
是的你是对的,你需要使用'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