【发布时间】:2016-08-06 16:46:20
【问题描述】:
我需要测试窗口是否不滚动 if overflow: hidden 应用于body标签。
不幸的是,scrollTo 和任何 jQuery 等效项实际上确实滚动(或设置位置)窗口,即使应用了溢出:隐藏。
WebDriverJS/Protractor 缺少“Window().scroll”方法。
我的代码有什么方法可以对此进行测试吗?
我觉得奇怪的另一件事是 window().getPosition() 似乎没有拉同一个浏览器窗口,因为在下面的测试中,如果您尝试使用 Protractor 获取位置,窗口位置仍然是 0,0 即使您已在浏览器中执行脚本。
与这两个问题有关:
量角器代码
假设下面的 mywebpage 可以滚动但有溢出:hidden set
describe('My webpage', function() {
beforeEach(function() {
browser.get('https://127.0.0.1/mywebpage');
browser.driver.manage().window().setSize(1400,800);
browser.driver.manage().window().setPosition(0,0);
});
it('Scrolling y is disabled', function() {
var scrollFunction = function() {
window.scrollTo(0,55);
};
var getOffsetTop = function() {
return document.body.scrollTop;
};
browser.executeScript(scrollFunction).then(function (yes) {
browser.executeScript(getOffsetTop).then(function (newposition) {
expect(newposition).toBe(0);
});
});
});
it('Scrolling y is disabled looking at Protractor Window', function() {
var scrollFunction = function() {
window.scrollTo(0,55);
};
var getOffsetTop = function() {
return document.body.scrollTop;
};
browser.executeScript(scrollFunction).then(function (yes) {
browser.driver.manage().window().getPosition().then(function (newposition) {
expect(newposition.getY()).toBe(0); // This is falsely true, if your scrolling y is enabled, this still remains position 0
});
});
});
});
【问题讨论】:
标签: angularjs unit-testing protractor