java【selenium】使用Javascript将元素滚动到可见的位置

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();
}

}

你可能感兴趣的:(自动化测试)