使用Selenium将元素滚动到屏幕中央


我们可以使用Selenium webdriver和JavaScript执行器将页面滚动到屏幕中央。Selenium可以通过executeScript方法执行JavaScript命令。

要滚动到屏幕中央,我们首先需要找到页面上要滚动到的元素。然后将scrollIntoView和WebElement作为参数传递给executeScript方法。

JavaScript命令scrollIntoView可以有多个可选参数。它们是:

  • behavior – 可以取值 - smooth 或 auto。它描述了过渡的动画效果。默认值为auto。

  • block – 可以取值 - start, end, center, 或 nearest。它描述了垂直对齐方式。默认值为start。

  • inline – 可以取值 - start, end, center, 或 nearest。它描述了水平对齐方式。默认值为nearest。

语法

WebElement e = driver.findElement(By.name("txt"));
JavascriptExecutor j = (JavascriptExecutor)driver;
j.executeScript ("arguments[0].scrollIntoView({block: 'center', inline: 'nearest'})", e);

示例

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.JavascriptExecutor;
public class ScrollToMiddle{
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver",
         "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      //implicit wait
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      //URL launch
      driver.get("https://tutorialspoint.com/index.htm");
      //identify element
      WebElement m = driver.findElement(By.linkText("Latest Courses"));
      //scroll to middle with Javascript Executor
      JavascriptExecutor j = (JavascriptExecutor) driver;
      j.executeScript("arguments[0].scrollIntoView({block: 'center', inline: 'nearest'})", m);
      System.out.println("Text is: " + m.getText());
   }
}

输出

更新于:2021年4月6日

4K+ 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告