如何使用javascriptExecutor定义像素来实现在selenium中上下滚动
本文将介绍如何使用javascriptexecutor来实现上下滚动。
滚动是JavaScript的一种方法,JavaScriptExecutor提供了一种接口,可以从selenium脚本中使用JavaScript方法。因此,在selenium中需要使用JavaScriptExecutor来进行上下滚动。
安装: 要使用JavaScriptExecutor,我们需要在系统中安装Java和Selenium,一个用于浏览器的webdriver,还需要一个用于代码编辑的IDE。
- Eclipse IDE: 在下载之前,请确保您的设备上已安装Java JDK。如果没有安装,请参考以下链接进行安装:如何为64位机器下载和安装Java?然后按照以下文章安装Eclipse IDE:Eclipse IDE for Java Developers
- Selenium: 下载最新稳定版本的Selenium,链接在此:selenium download
- Web Driver: 根据您的版本下载Microsoft Edge webdriver,链接在此:webdriver download
语法:
window.scrollBy(xnum,ynum);
参数:
- Xnum: 是在x轴(水平方向)上滚动的像素数。正值会向右滚动,负值会向左滚动。
- Ynum: 是在y轴(垂直方向)上滚动的像素数。正值会向下滚动,负值会向上滚动。
滚动函数:
javascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(xnum,ynum)", "");
示例:
- 向上滚动: 如果用户想要向上滚动,他们只需要将第二个参数的像素值修改为 负值(例如350)。 。
- 向下滚动: 如果用户想要向下滚动,他们只需要将第二个参数的像素值修改为 正值(例如350)。
使用Selenium WebDriver滚动网页的程序:
Java
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
public class geeksforgeeks {
public static void main(String args[]) {
System.setProperty("webdriver.edge.driver",
"C:\\Users\\ADMIN\\Documents\\Selenium\\msedgedriver.exe");
// Instantiate a EdgeDriver class.
WebDriver driver=new EdgeDriver();
// Maximize the browser
driver.manage().window().maximize();
// Launch Website
driver.get("https://www.geeksforgeeks.org/");
JavascriptExecutor js = (JavascriptExecutor) driver;
// Scroll Down by 350 pixels
js.executeScript("window.scrollBy(0,350)", "");
}
}
运行代码的步骤:
- 打开Eclipse,点击文件 > 新建 > Java项目。
- 输入项目名称,点击完成按钮。
- 在包资源管理器(窗口的左侧)中选择您创建的项目。
- 右键点击src文件夹,选择新建 > 类。输入类名,点击完成按钮。
- 添加Selenium Jars,请参考以下文章 https://www.geeksforgeeks.org/how-to-open-chrome-browser-using-selenium-in-java/
- 编写程序并保存。
- 现在,按下Ctrl+F11或点击运行菜单并选择运行,或点击运行按钮。
输出: 该代码初始化GeeksforGeeks以使用Edge浏览器。然后启动Edge浏览器,并导航至指定的网站URL。网站加载完毕后,浏览器窗口向下垂直滚动350像素。