如何防止在单击页面上的元素时出错,但未在夜巡.js中滚动到视图中?



我正在为页面上的元素编写测试,但没有滚动到视图中。每当我在元素上使用pageObject.click("@MyElement)时,它都会引发此错误:

Error while running .clickElement() protocol action: element click intercepted: Element is not clickable at point (621, 929)

然后,该元素将在引发错误后滚动到视图中。不知道这里发生了什么。

我试过使用pageObject.moveToElement("@selector").waitForElementVisible("@selector"),但它不起作用。

当这种情况发生在我身上时,我通常会先将目标元素滚动到视图中,然后继续对其执行操作和/或断言。

我们将使用执行方法:

browser.element('css selector', <targetElemSelector>, (result) => {
browser.execute('arguments[0].scrollIntoView({behavior: "instant", block: "center", inline: "center"})', [result.value]);
browser.click(result.value.ELEMENT);
});

这种方法还为您提供了很大的灵活性,可以通过scrollIntoView的属性定位目标元素:您可以像示例中一样将元素锁定在顶部,底部或中心。当您必须避免营销弹出窗口聊天机器人GDPR 通知等重叠时,这尤其有用。

相关内容

  • 没有找到相关文章

最新更新