gpt4 book ai didi

java - java和selenium中像人类一样的鼠标滚动

转载 作者:行者123 更新时间:2023-11-30 06:11:45 27 4
gpt4 key购买 nike

首先我想说我三天前开始编程。所以我几乎是一个初学者。除了我在这里介绍的内容之外,我不打算从事编程,我现在只需要一个简单的程序,我想自己做,纯粹作为一种爱好。我用 Selenium 和 java 来做。因此,我需要一个代码来尽可能真实地在 Web 浏览器中向下/向上滚动 Web 应用程序。我目前正在使用此代码:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript ("window.scrollBy (0.1500)", "");

没关系,但是这段代码的作用看起来像是按下向下翻页按钮而不是滚动。

在那之后,我想做以下事情:

js.executeScript ("window.scrollBy (0.50)", "");
js.executeScript ("window.scrollBy (0.30)", "");
js.executeScript ("window.scrollBy (0.33)", "");
js.executeScript ("window.scrollBy (0.42)", "");
js.executeScript ("window.scrollBy (0.45)", "");
js.executeScript ("window.scrollBy (0.24)", "");
js.executeScript ("window.scrollBy (0.19)", "");
js.executeScript ("window.scrollBy (0.50)", "");

所以现在这段代码向下滚动页面,就像使用滚轮用鼠标滚动一样,但正如您所看到的,它看起来不像一个“优雅”的解决方案,而且我确信有更好的东西,但是我三天的经验,这是我能做的最好的了。

那么,是否有人愿意帮助我提高代码效率,而不是使用数百万行来完成相同的重复工作...我不知道,例如:

js.executeScript ("window.scrollBy (0,50,45,66,78,43,56,87)", "");

在一行和几个变量中,程序可以执行需要执行的操作,并获取从“0,50,45,66,78,43,56,87”滚动的时间间隔和/或像素”

最佳答案

尝试在 executeScript() 方法中实现 arguments[0].scrollIntoView(true);

如果你想滚动一直到最后,选择 FOOTER 作为目标元素。

WebElement elem =  driver.findElement(By.id("ID OF FOOTER ELEMENT"));

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView(true);", elem);

您可以使用 By.className("CLASSNAME OF FOOTER ELEMENT")By.xpath("XPATH SELECTOR OF FOOTER")By.cssSelector ("CSS SELECTOR OF FOOTER") 如果 id 不可用。

注意:您可以滚动到定位目标元素选择器的任何位置。

关于java - java和selenium中像人类一样的鼠标滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50080238/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com