Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了红宝石 – 硒滚动元素进入(视图中心)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当一个元素与selenium不在视图中并且试图与它进行交互时,selenium通常会隐式地将元素滚动到视图中.这很棒,但令人讨厌的是它通常会将元素放入视图中.我的意思是,如果元素在窗口下方,它将向下滚动,直到元素刚好接近窗口边缘.

通常这很好,但是当在带有边框的网站上工作时,这将导致许多这类错误

Selenium::WebDriver::Error::UnknownError:
       unknown error: Element is not clickable at point (438,747). Other element would receive the click: <body>...</body>

因为通常网页的边框位于其上方,但无论如何都会尝试单击该元素.无论如何处理这个?也许是在视线外时自动将元素移动到屏幕中心?我正在考虑通过红宝石修补猴子.

解决方法

这应该可以将元素滚动到视图中心:
WebElement element = driver.findElement(By.xxx("xxxx"));

String scrollElementIntoMiddle = "var viewPortHeight = Math.max(document.documentElement.clientHeight,window.innerHeight || 0);"
                                            + "var elementTop = arguments[0].getBoundingClientRect().top;"
                                            + "window.scrollBy(0,elementTop-(viewPortHeight/2));";

((JavascriptExecutor) driver).executeScript(scrollElementIntoMiddle,element);

大佬总结

以上是大佬教程为你收集整理的红宝石 – 硒滚动元素进入(视图中心)全部内容,希望文章能够帮你解决红宝石 – 硒滚动元素进入(视图中心)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: