【问题标题】:How check that there was scrolling action to element into view?如何检查元素是否有滚动动作进入视图?
【发布时间】:2018-02-01 02:29:11
【问题描述】:

有没有办法检查页面上的一些操作后,浏览器滚动到查看元素?并在它之后返回 true 或 false。可能是 使用 JavaScriptExecutor 我们可以做到这一点

还有话,我想检查滚动的事实

【问题讨论】:

  • 您的确切问题是什么(您尝试自动化的手动步骤)?
  • 点击按钮后滚动的事实
  • 请参阅:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask
  • 您是否尝试检测页面是否自行滚动,以便知道您在页面上的位置?

标签: javascript c# selenium selenium-webdriver


【解决方案1】:

按照以下步骤进行滚动:

  1. 在当前状态下截屏
  2. 通过js滚动页面到向上位置
  3. 在Up状态下再次截图
  4. 区分两个屏幕截图

如果您现在想要在页面上显示元素(滚动后在浏览器中),您可以:

  1. 获取页面上的元素位置(以 pxls 为单位):x、y、height_x、weight_y
  2. 获取页面截图
  3. 获取元素截图
  4. 将页面截图剪切成矩形图片(按元素坐标,step1)
  5. Diff 元素屏幕截图和矩形图像

在这两种方式中,步骤 1-3 都是简单的 selenium web-driver 操作(我只能在 java 上说明)。对于差异图像,建议使用 imageMagic

【讨论】:

    【解决方案2】:

    使用Displayed 属性

    element.Displayed;
    

    将返回truefalse

    【讨论】:

    • 不,点击按钮后,页面滚动到页面上的某个标题。 element.Displayed 在操作之前和之后返回 true。我想知道那卷轴是
    猜你喜欢
    • 2011-06-20
    • 2012-10-24
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    相关资源
    最近更新 更多