0

我正在为页面上的元素编写测试,但没有滚动到视图中。每当我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"),但它不起作用。

4

1 回答 1

0

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

我们将使用执行方法:

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 通知等重叠时,这尤其有用。

于 2019-07-23T04:48:32.607 回答