我有一个量角器测试,在我的无限卷轴组件中查找记录。
searchPage.searchEntitlement('search criteria');
var myHiddenElementInScroller = element(by.repeater('result in ctrl.results track by $index').row(12));
browser.driver.executeScript(function () { arguments[0].scrollIntoView(); }, myHiddenElementInScroller .getWebElement());
myHiddenElementInScroller.click();
这应该滚动到元素并单击它。相反,它让我元素不可见错误。
有没有人遇到过这种情况?非常感谢任何帮助。
答案 0 :(得分:1)
您可能需要明确等待滚动到视图实际发生:
browser.driver.executeScript("arguments[0].scrollIntoView()", myHiddenElementInScroller.getWebElement()).then(function () {
myHiddenElementInScroller.click();
});
browser.actions().mouseMove(myHiddenElementInScroller).click().perform();
答案 1 :(得分:1)
在少数情况下,我们正在寻找的元素将被DOM中的其他元素覆盖。当量角器尝试单击它时,单击将由覆盖实际元素的元素接收。所以在这种情况下你需要使用原生的javascript点击事件。请看下面的代码。
browser.executeScript("arguments[0].click()", myHiddenElementInScroller.getWebElement())
上面的代码会将Click事件直接发送到提到的webElement,即使它是否可见。
注意:这不是单击元素的推荐方法。但是在没有其他解决方法来实现点击事件的情况下,你可以这样做。
答案 2 :(得分:0)
感谢所有回复。我能够通过使用element(by.CssContainingText(cssSelector,searchText))定位器来解决这个问题。