【问题标题】:How to validate the user has been scroll to top when he click on "back to top" button in selenium当他单击selenium的“返回顶部”按钮时,如何验证用户已滚动到顶部
【发布时间】:2019-02-04 08:12:36
【问题描述】:

我遇到了一种情况,当单击屏幕底部的“返回顶部”按钮时,我需要验证用户是否滚动到页面顶部。

我尝试了以下方法,但没有成功。

我尝试使用

验证页面顶部的元素
isDisplayed method

我已附上图片以便清晰描述。

【问题讨论】:

  • 可以执行javascript:executeScript("return window.pageYOffset;")
  • 能否请您详细说明如何使用 Kantu 将与 Web 驱动程序一起使用
  • @Ywapom 所以如果我采用面向像素的方法,如果我在更高的屏幕上执行它,让我们配对编程系统或者说更高英寸屏幕的系统。
  • @khan 系统/大小无关紧要,“返回顶部”应该将您带到浏览器 window.pageYoffset 为零

标签: selenium selenium-webdriver selenium-chromedriver selenium-ide


【解决方案1】:

使用 javascript 概念使用 pageYOffset 方法解决它。

完整代码

JavascriptExecutor executor = (JavascriptExecutor) driver;
Long value = (Long) executor.executeScript("return window.pageYOffset;");

pageYOffset 方法将返回垂直像素,因此我登录后立即获得垂直像素,然后滚动到返回顶部按钮,并在对返回顶部按钮执行操作后,再次获取垂直像素并对其进行验证。

【讨论】:

    【解决方案2】:

    isDisplayed() 检查元素是否实际存在于视口中,因此它应该可以工作。出于调试目的,可能会在单击和检查 isDisplayed 之间稍作等待。

    if (element.isDisplayed()) {
    doSomething(); 
    }
    else {
    doSomethingElse();
    }
    

    【讨论】:

    • 我什至尝试过使用 isDispalyed 它不起作用。当我滚动到页面底部时,我确实断言页面最顶部的元素返回 true
    • 如果测试允许,您可以尝试相反的方式来断言 scrollToTop 按钮不显示吗?这也返回 true 吗?
    • 你能用例子详细说明一下吗
    • 你有“回到顶部”,如果你到达顶部就会消失。所以想知道你的测试用例是否测试了按钮的消失(这是一种说你到达页面顶部的方式,如果它不再显示,虽然不是一个很好的测试)。
    • 是的,我们可以测试它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 2021-05-04
    • 2015-01-12
    • 2014-09-27
    • 1970-01-01
    • 2018-12-09
    相关资源
    最近更新 更多