【问题标题】:How to test elements visibility into a dropdown scroll with Protractor?如何使用量角器测试元素对下拉滚动的可见性?
【发布时间】:2016-05-24 08:26:58
【问题描述】:

我有一个引导 Angular 下拉菜单,当您单击它时,它会显示一个 UL 元素,该元素已将 overflow-y 设置为 auto,因此只有在向上或向下滚动之后,其中的某些项目才可见。

我实现了一个自动滚动到所选元素的方法(默认行为是记住最后滚动位置),所以我想用 Protractor 对其进行测试。

我已经尝试过使用 isDisplayed() 方法,将此 UL 中的所有元素都设为 true(尽管 20 个元素中只有 10 个实际上是可见的)

expect(item20.isDisplayed()).toBe(false); //returns true

之后我尝试点击它们,期望抛出错误“元素不可见”,但它们都被成功点击了。

关于如何测试项目是否在此滚动的可见部分中的任何想法?

【问题讨论】:

  • 快速检查:您是否看到 Firefox 和 Chrome 中的测试都失败了?试图排除特定于浏览器的问题..
  • 所有浏览器的结果都是一样的,问题在于isDisplayed,对于Protractor,滚动中的这些元素都是可见的。
  • 好的,你能发布下拉列表的完整 HTML 表示吗?想知道为什么硒认为这些元素是可见的。谢谢。

标签: angularjs protractor dropdown


【解决方案1】:

看起来,对于 Protractor,这些项目实际上是可见的,因此 isDisplayed 将为所有项目返回 true。

所以我使用 getLocation() 方法来比较滚动元素的初始位置和最终位置,从而检查它们是否正确定位。

expect(selectedElement.getLocation()).toEqual(selectedElementInitialLocation);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-15
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 2017-09-16
    相关资源
    最近更新 更多