Yay*_*ayo 11 java selenium scroll
使用selenium和java,我需要测试一个"返回顶部"按钮,所以我做的是向下滚动页面,直到显示"返回顶部"按钮(当滚动页面的25%时显示)并单击它,这个按钮将用户带到页面的顶部,现在我需要检查它是否有效,可见部分是页面的顶部.我怎么能用java做到这一点?
Lou*_*uis 23
一般原则是检查window.pageYOffset浏览器中的值.如果您的按钮完全滚动到顶部,那么window.pageYOffset值应为0.假设driver变量保存您的WebDriver实例:
JavascriptExecutor executor = (JavascriptExecutor) driver;
Long value = (Long) executor.executeScript("return window.pageYOffset;");
Run Code Online (Sandbox Code Playgroud)
然后,您可以检查是否value为0. executeScript用于在浏览器中运行JavaScript代码.
这个答案最初提到scrollY但是IE上没有它的支持.它上面的MDN页面说:
对于跨浏览器兼容性,请使用
window.pageYOffset而不是window.scrollY.此外,旧版本的Internet Explorer(<9)不支持任何属性,必须通过检查其他非标准属性来解决.一个完全兼容的例子:Run Code Online (Sandbox Code Playgroud)var supportPageOffset = window.pageXOffset !== undefined; 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的"抬头".
Louis的答案有效,但不完全兼容跨浏览器,因为Internet Explorer不支持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;");
Run Code Online (Sandbox Code Playgroud)
此外,还有Ruby的语法(我现在的位置使用的语法,假设以前可以通过变量名'driver'访问该驱动程序实例):
driver.execute_script('return window.pageYOffset;')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18778 次 |
| 最近记录: |