使用selenium和java,我需要测试一个“返回顶部”按钮,所以我所做的是向下滚动页面直到显示“返回顶部”按钮(当滚动页面的25%时显示)并点击它,这个按钮将用户带到页面的顶部,现在我需要检查它是否工作,可见的部分是页面的顶部。我如何使用java来做这件事呢?
发布于 2014-09-09 06:37:58
一般原则是在浏览器中检查window.pageYOffset的值。如果您的按钮完全滚动回到顶部,则window.pageYOffset的值应为0。假设driver变量包含您的WebDriver实例:
JavascriptExecutor executor = (JavascriptExecutor) driver;
Long value = (Long) executor.executeScript("return window.pageYOffset;");然后可以检查value是否为0。executeScript用于在浏览器中运行JavaScript代码。
这个答案最初提到了scrollY,但IE不支持它。MDN page on it说:
为了实现跨浏览器兼容性,请使用
window.pageYOffset而不是window.scrollY。此外,旧版本的Internet Explorer (< 9)不支持这两个属性,必须通过检查其他非标准属性来解决。一个完全兼容的示例:
var supportPageOffset = window.pageXOffset !==未定义;var isCSS1Compat = ((document.compatMode || "") === "CSS1Compat");var x= supportPageOffset?window.pageXOffset : isCSS1Compat?document.documentElement.scrollLeft : document.body.scrollLeft;var y= supportPageOffset?window.pageYOffset : isCSS1Compat?document.documentElement.scrollTop : document.body.scrollTop;
感谢R. Oosterholt的“提醒”。
发布于 2016-06-30 03:43:58
路易的答案是可行的,但不是完全跨浏览器兼容的,因为is浏览器不支持window.scrollY。我建议使用window.pageYOffset -它返回相同的值,但跨浏览器兼容。
来源:https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY
下面是上面的代码块和修改后的代码:
JavascriptExecutor executor = (JavascriptExecutor) driver;
Long value = (Long) executor.executeScript("return window.pageYOffset;");此外,Ruby的语法(我在当前位置使用的语法,假设驱动程序实例可以通过变量名‘driver’访问):
driver.execute_script('return window.pageYOffset;')发布于 2020-05-16 08:05:04
如果需要,找到滚动到一个指定div的位置,使用以下代码:
JavascriptExecutor executor = (JavascriptExecutor) driver;
Long value = (Long) executor.executeScript("return document.getElementById('container').scrollTop;");https://stackoverflow.com/questions/25733877
复制相似问题