向下滚动到带有量角器的元素
Scroll down to an element with protractor
我正在测试的页面上有一个元素,我必须向下滚动才能看到。例如,当我执行测试时,我得到元素在点 (94, 188) 不可点击。
我尝试了以下方法:
dvr.executeScript('window.scrollTo(0,250);');
但它没有用。有谁知道这是如何工作的?
回答你似乎太晚了..但无论如何,
以下代码帮助我删除了"元素不可单击"错误。
var elm = element.all(by.css('.your-css-class')).get(9);
browser.executeScript("arguments[0].scrollIntoView();", elm.getWebElement());
elm.click();
基本上,这允许您滚动到视图。
window.scrollTo(x,x)
解决方案对我不起作用。特别是在测试纹波模拟器时。我设法使用scrollIntoView
方法使其工作。
var scrollToScript = 'document.getElementById("ELEMENT ID").scrollIntoView();';
browser.driver.executeScript(scrollToScript).then(function() {
element(by.id('ELEMENT ID')).click();
expect(...);
});
'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")));
免责声明:此代码来自 sg-量角器工具的scroll.js
。
代码在 MIT 许可证下获得许可。
我认为这对您很有帮助:
dvr.executeScript('window.scrollTo(94,188);').then(function() {
element(by.<<here your button locator>>).click();
})
你的Web驱动程序无法读取那个点(1254,21),原因是你的量角器浏览器无法覆盖整个页面你想测试什么,然后我们给出一个命令,浏览器正在滚动到那个点(1254,21),然后执行点击操作
我使用了Bassem建议的链接并且有效。步骤如下:
-
我们将不得不使用以下命令安装 sg-量角器工具(如果您没有管理员访问权限,请使用 Sudo):
npm install --save-dev sg-protractor-tools
-
然后代码看起来像这样(我在维基百科上尝试过这个)
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'))); } );
尝试使用 npm 模块"sg-protractor-tools",对我来说与火狐和 chrome 驱动程序配合得很好,
这是一种在页面元素上滚动的干净方法,更多详情请点击此处 https://www.npmjs.com/package/sg-protractor-tools
将 xpath 动态传递给此方法,它将滚动到元素
scrollToElement: function (element) {
return element.getLocation().then(function (location) {
return browser.executeScript('window.scrollTo(' + location.x + ', ' + location.y + ');');
});
},
相关文章:
- 无法从量角器测试中元素的值返回字符串
- 我如何选择/点击一个带有for=“”的元素"属性[量角器]
- 需要在量角器中找到使用ng中继器的li元素的数量
- 识别切换条元素文本并在量角器中单击它
- 量角器-如何从中继器而不是元素中获得实际值
- 如何使用量角器将文件上传到ng文件上传元素
- 量角器 - 根据条件识别嵌套下拉元素时超时
- 如何在运行时突出显示量角器中的元素
- 量角器无法定位元素/值
- 获取元素's用量角器偏移的位置
- 如何在没有明显可识别属性的量角器中识别页面元素
- 点击量角器中元素的给定坐标
- 量角器:获取元素's同上
- 量角器获取元素的比例或缩放的宽度和高度
- 鼠标悬停元素在使用量角器时不起作用
- 量角器 StaleElementReferenceError: 元素不再附加到 DOM
- 使用量角器获取伪元素的值
- 我应该从量角器中元素的 getText() 承诺中分配一个变量或返回变量
- 找出量角器元素的CSS链
- 量角器元素(.)从单独的文件返回未定义