我有一个bootstrap Angular下拉列表,当你点击它时,它会使溢出-y设置为auto的UL元素可见,因此只有向上或向下滚动后才能看到里面的一些项目.
我实现了一个方法来自动滚动到所选元素(默认行为是记住最后滚动位置)所以我想用Protractor测试它.
我已经尝试过使用isDisplayed()方法,将其转换为此UL中的所有元素都是如此(尽管20个中只有10个实际可见)
expect(item20.isDisplayed()).toBe(false); //returns true
之后,我试图点击它们,期望抛出错误“元素不可见”,但所有这些都被成功点击.
有关如何测试项目是否在此滚动条的可见部分的任何想法?
解决方法
看起来对于Protractor来说,这些项目实际上是可见的,因此isDisplayed将为所有这些项目返回true.
所以我使用getLocation()方法来比较滚动元素的初始和最终位置,因此检查它们是否正确定位.
expect(selectedElement.getLocation()).toEqual(selectedElementInitialLocation);