selenium是没有滚动指令的,不知道有没有出版本,可以执行javascripr命令,去操作滚动页面
import static org.junit.jupiter.api.Assertions.*;
import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import Test1.ChromeDriveDemo;
import usefulmethods.windowScrolling;
class JavaScriptWinodowRolling {
/*
* JavaScript命令将元素滚动
*/
WebDriver driver;
private JavascriptExecutor js;
@BeforeEach
void setUp() throws Exception {
//本地驱动
System.setProperty("webdriver.chrome.driver", "/Users/lisen/webselenium/selenium/chromedriver");
//谷歌浏览器
driver =new ChromeDriver();
//强转
js=(JavascriptExecutor) driver;
//设置隐性等待
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//窗口最大化
driver.manage().window().maximize();
}
@Test
void test() throws Exception {
//打开网址
js.executeScript("window.location='https://p2p.migang.com/';");
//等待
Thread.sleep(3000);
//向下滚动
js.executeScript("window.scrollBy(0,1200)");
Thread.sleep(2000);
//向上滚动
js.executeScript("window.scrollBy(0,-1200);");
Thread.sleep(2000);
//滚动到要操作的位置
WebElement element =driver.findElement(By.xpath("//h2/a[contains(text(),'米缸优选')]"));
js.executeScript("arguments[0].scrollIntoView(true);",element);
Thread.sleep(2000);
//向上滚动一点点
js.executeScript("window.scrollBy(0,-190);");
Thread.sleep(2000);
}
@AfterEach
void tearDown() throws Exception {
//关闭浏览器
driver.quit();
}
}