Javascript 使用量角器向下滚动到某个元素
我在测试的页面上有一个元素,我必须向下滚动才能看到。当我执行我的测试时,我得到元素在点(94188)处是不可点击的 我尝试了以下方法:Javascript 使用量角器向下滚动到某个元素,javascript,scroll,jasmine,protractor,Javascript,Scroll,Jasmine,Protractor,我在测试的页面上有一个元素,我必须向下滚动才能看到。当我执行我的测试时,我得到元素在点(94188)处是不可点击的 我尝试了以下方法: dvr.executeScript('window.scrollTo(0,250);'); 但它不起作用。有人知道这是怎么回事吗?我认为这对你很有帮助: dvr.executeScript('window.scrollTo(94,188);').then(function() { element(by.<<here your button
dvr.executeScript('window.scrollTo(0,250);');
但它不起作用。有人知道这是怎么回事吗?我认为这对你很有帮助:
dvr.executeScript('window.scrollTo(94,188);').then(function() {
element(by.<<here your button locator>>).click();
})
dvr.executeScript('window.scrollTo(94188);')。然后(function(){
元素(按)。单击();
})
您的webdriver无法读取该点(1254,21),原因是您的量角器浏览器无法覆盖整个页面您要测试的内容,然后我们发出一个命令,让浏览器滚动到该点(1254,21),然后在窗口执行单击操作。滚动到(x,x)
解决方案对我不起作用。特别是在测试ripple仿真器时。
我使用scrollIntoView
方法成功地实现了它
var scrollToScript = 'document.getElementById("ELEMENT ID").scrollIntoView();';
browser.driver.executeScript(scrollToScript).then(function() {
element(by.id('ELEMENT ID')).click();
expect(...);
});
现在回答你似乎太晚了。。 但无论如何 以下代码帮助我删除了元素不可单击的错误
var elm = element.all(by.css('.your-css-class')).get(9);
browser.executeScript("arguments[0].scrollIntoView();", elm.getWebElement());
elm.click();
基本上,这允许您滚动到视图中 尝试使用npm模块“sg量角器工具”,在firefox和chrome驱动程序上对我来说很好
这是一种在页面元素上滚动的干净方法,
这里有更多详细信息我使用了巴塞姆建议的链接,这很有效。步骤如下:
scrollTo(element(by.css("div.someclass")));
免责声明:此代码来自sg量角器工具。代码是根据MIT许可证授权的。将xpath动态传递给此方法,它将滚动到元素
可能是我读过的这本书的复制品。它对我不起作用。对我来说很有魅力。在我的例子中,Chrome会通过测试,因为它会自动滚动,但Firefox会失败。使用scrollIntoView,两种浏览器都可以通过测试。谢谢@Rahul!你救了我一天!
var sgpt = require('sg-protractor-tools');
it ('verify that scroll works', function ()
{
browser.get('http://wikipedia.org');
browser.manage().window().setSize(1000, 1000);
sgpt.scroll.scrollTo(element(by.linkText('Terms of Use')));
}
);
'use strict';
/**
* Vertically scroll top-left corner of the given element (y-direction) into viewport.
* @param scrollToElement element to be scrolled into visible area
*/
function scrollTo(scrollToElement) {
var wd = browser.driver;
return scrollToElement.getLocation().then(function (loc) {
return wd.executeScript('window.scrollTo(0,arguments[0]);', loc.y);
});
};
scrollTo(element(by.css("div.someclass")));
scrollToElement: function (element) {
return element.getLocation().then(function (location) {
return browser.executeScript('window.scrollTo(' + location.x + ', ' + location.y + ');');
});
},