我刚刚开始对Angular 2和e2e进行测试,我正在尝试通过使用量角器在空白区域中单击来关闭Bootstrap4模式。我试过了:
it('should close the login modal when the blank space outside of the modal is clicked', () => {
element(by.tagName('body')).click().then(function() {
browser.sleep(250);
expect(element(by.id('myModal')).isDisplayed()).toBeFalsy();
});
});...and我甚至尝试过:
it('should close the login modal when the blank space outside of the modal is clicked', () => {
browser.actions()
.mouseMove(element(by.id('login_modal')), -20, -20)
.click().then(function() {
browser.sleep(250);
expect(element(by.id('login_modal')).isDisplayed()).toBeFalsy();
});
});我是Angular 2世界的新手,所以答案可能很明显。提前感谢您的帮助。
发布于 2017-06-11 23:33:09
我还没有看到你的HTML,但我想这会发生的。元素上的click-action将在元素的中心执行一次单击,请参见actions docs。
这取决于您的模式在页面上的位置,但在常见情况下,模式位于页面的中心。如果我们使用该命令,并执行上面描述的第一个单击命令,我们将得到以下结果
点击“
body => 不会被closed模式。
您描述的第二个单击命令会失败,因为您需要提供一个对象,请参阅here,因此它需要
browser.actions()
.mouseMove(element(by.id('login_modal')), {
x: toRight,
y: toBottom
})
.click().then(function() {
browser.sleep(250);
expect(element(by.id('login_modal')).isDisplayed()).toBeFalsy();
});
发布于 2017-06-16 21:43:41
感谢你的反馈,这让我找到了答案。我应该发布这是一个bootstrap模式,这是相关的。当被调用时,模式会覆盖整个页面,而不仅仅是中间的矩形。通过将我的坐标设置为x:0,y:0,我在模式的“空白”区域。
https://stackoverflow.com/questions/44474318
复制相似问题