无法使用Selenium在自定义滚动条上滚动

Not able to scroll on custom scrollbar using Selenium

本文关键字:自定义 滚动条 滚动 Selenium      更新时间:2023-09-26

我们正在为我们的网站使用自定义滚动条(mcustomscrollbar),但我无法使用selenium滚动自定义滚动条。试:

injecting javascript ( Eg: ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(false);", el) ).

但是没有用,它不起作用。

最后我找到了一个使用注入jquery的解决方案:

jQuery('.mCustomScrollbar').mCustomScrollbar('scrollTo',$('#xyz'))

现在我需要使用特定的web元素来滚动,而不是使用id属性。有没有一种方法可以使用某种技术?

参考:检查这个图像:https://drive.google.com/file/d/0B1y-4W_7TTOXU1lBdEt6WkNrZFE/view?usp=sharing

点击此处注册获取更多信息

你可以试试这个:

你添加了css

 style="display: table-cell; height: 100vh; vertical-align: middle; max-width: 100vw;overflow: scroll;position: fixed;margin-left: -306px;"

不确定您是否知道如何使用Javascript来完成此操作,但我执行以下操作来滚动我的mcustomscrollbar:

((JavascriptExecutor)getDriver()).executeScript("arguments[0].scrollIntoView();", driver.findElement(By.cssSelector("div.class")));

. .其中'driver'是Webdriver实例。div.class可以是任何CSS元素。

我得到了这个页面,试图看看是否有人有问题与mcustomscrollbar有时滚动回页面的顶部,而不是留在原地。对我来说,我现在必须在页面底部滚动每个表单输入,这只在大多数时候有效。你看到了吗,苏雷什?

编辑:还发现这个页面,为我提供了这个滚动命令,为我工作。

    ((JavascriptExecutor)getDriver()).executeScript("$('.mCustomScrollbar#content').mCustomScrollbar('scrollTo',document.querySelector('"div.class button.class'"))");

你可以在querySelector中使用任何CSS选择器