首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Selenium,如何检查滚动位置?

Selenium,如何检查滚动位置?
EN

Stack Overflow用户
提问于 2014-09-09 06:11:12
回答 3查看 27.9K关注 0票数 17

使用selenium和java,我需要测试一个“返回顶部”按钮,所以我所做的是向下滚动页面直到显示“返回顶部”按钮(当滚动页面的25%时显示)并点击它,这个按钮将用户带到页面的顶部,现在我需要检查它是否工作,可见的部分是页面的顶部。我如何使用java来做这件事呢?

EN

回答 3

Stack Overflow用户

发布于 2014-09-09 06:37:58

一般原则是在浏览器中检查window.pageYOffset的值。如果您的按钮完全滚动回到顶部,则window.pageYOffset的值应为0。假设driver变量包含您的WebDriver实例:

代码语言:javascript
运行
复制
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的“提醒”。

票数 26
EN

Stack Overflow用户

发布于 2016-06-30 03:43:58

路易的答案是可行的,但不是完全跨浏览器兼容的,因为is浏览器不支持window.scrollY。我建议使用window.pageYOffset -它返回相同的值,但跨浏览器兼容。

来源:https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY

下面是上面的代码块和修改后的代码:

代码语言:javascript
运行
复制
JavascriptExecutor executor = (JavascriptExecutor) driver;
Long value = (Long) executor.executeScript("return window.pageYOffset;");

此外,Ruby的语法(我在当前位置使用的语法,假设驱动程序实例可以通过变量名‘driver’访问):

代码语言:javascript
运行
复制
driver.execute_script('return window.pageYOffset;')
票数 8
EN

Stack Overflow用户

发布于 2020-05-16 08:05:04

如果需要,找到滚动到一个指定div的位置,使用以下代码:

代码语言:javascript
运行
复制
JavascriptExecutor executor = (JavascriptExecutor) driver;
Long value = (Long) executor.executeScript("return document.getElementById('container').scrollTop;");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25733877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档