SeleniumWebDriver(Java)创建用于滚动的类
我正在尝试为不同类型的卷轴(向上、向下、页面底部等)创建一个类,但我不能这样做SeleniumWebDriver(Java)创建用于滚动的类,java,selenium,selenium-webdriver,automation,Java,Selenium,Selenium Webdriver,Automation,我正在尝试为不同类型的卷轴(向上、向下、页面底部等)创建一个类,但我不能这样做 import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.chrome.ChromeDriver; public class ScrollPage { public static void scrolldown(String element) throws Exception { System.se
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.chrome.ChromeDriver;
public class ScrollPage {
public static void scrolldown(String element) throws Exception {
System.setProperty("webdriver.chrome.driver", "C:\\JAVA\\DRIVER\\chromedriver.exe");
ChromeDriver driver = new ChromeDriver();
//Scroll 1/4 página
JavascriptExecutor jse1 = (JavascriptExecutor) driver;
jse1.executeScript("scroll(0,250);");
}
/*
public static void scrolldown2(String element) throws Exception {
//Scroll hasta la mitad
JavascriptExecutor jse2 = (JavascriptExecutor) driver;
jse2.executeScript("scroll(0,500);");
}
public static void scrolldown3(String element) throws Exception {
//Scroll hasta el final
JavascriptExecutor jse3 = (JavascriptExecutor) driver;
jse3.executeScript("scroll(0,1000);");
}
*/
//Otra forma de Scroll hasta el final
/* JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollTo(0,Math.max"
+ "(document.documentElement.scrollHeight,"
+ "document.body.scrollHeight,document.documentElement.clientHeight));");
public static void scrollup(String element) throws Exception {
//Scroll hasta arriba
JavascriptExecutor jse4 = (JavascriptExecutor) driver;
jse4.executeScript("scroll(1000,0);");
}
public static void slowmotion (String element) throws Exception {
//Scroll en cámara lenta
for (int second = 0;; second++) {
if(second >=60){
break;
}
((JavascriptExecutor) driver).executeScript("window.scrollBy(0,1000)", "");
}
}
*/
}
之后,在另一个类中,我想调用一个特定的滚动:
ScrollPage.scrolldown()
请帮帮我。这不是Selenium Java的问题,这与面向对象编程有关。您熟悉java类的工作方式吗
现在,您应该可以在测试类中调用Scroll方法了。我看到您的代码中有很多错误:
滚动方法中的驱动程序实例化。从中删除所有与滚动无关的内容
driver.get()
方法(JavascriptExecutor)driver.executeScript(“window.scrollBy(0250)”,”代码>将窗口滚动250像素
您使用了错误的java脚本命令来滚动窗口 试试这个:-
JavascriptExecutor jse1 = (JavascriptExecutor) driver;
jse1.executeScript("window.scroll(0,250);");
我的代码中有一些问题 正确的选择是下一个:
package-Util;
导入org.openqa.selenium.By;
导入org.openqa.selenium.JavascriptExecutor;
导入org.openqa.selenium.chrome.ChromeDriver;
公共抽象类滚动页面{
公共静态void DoscorlDown250(ChromeDriver驱动程序)引发异常{
JavascriptExecutor jse=驱动程序;
executeScript(“滚动(0250);”;
}
公共静态void doscorldown500(ChromeDriver驱动程序)引发异常{
JavascriptExecutor jse2=(JavascriptExecutor)驱动程序;
jse2.executeScript(“滚动(0500);”;
}
publicstaticvoiddoscorlup(ChromeDriver驱动程序)引发异常{
JavascriptExecutor jse2=(JavascriptExecutor)驱动程序;
jse2.executeScript(“滚动(0000);”;
}
公共静态void DoscorlDown1000(ChromeDriver驱动程序)引发异常{
JavascriptExecutor jse3=(JavascriptExecutor)驱动程序;
jse3.executeScript(“滚动(01000);”;
}
//慢动作
公共静态void slowmotionDown(ChromeDriver驱动程序)引发异常{
for(int second=0;second++){
如果(秒>=60){
打破
}
((JavascriptExecutor)driver.executeScript(“window.scrollBy(0,13)”,”);
}
}
//慢动作向上
公共静态void slowmotionUp(ChromeDriver驱动程序)引发异常{
for(int second=0;second++){
如果(秒>=60){
打破
}
((JavascriptExecutor)driver.executeScript(“window.scrollBy(1000,13)”,”);
}
}
//从左到右
公共静态void Left2Right(ChromeDriver驱动程序)引发异常{
JavascriptExecutor js=(JavascriptExecutor)驱动程序;
js.executeScript(“window.scrollBy(2000,0)”,“”);
}
//从右到左
公共静态void Right2Left(ChromeDriver驱动程序)引发异常{
JavascriptExecutor jsx=(JavascriptExecutor)驱动程序;
jsx.executeScript(“window.scrollBy(-2000,0)”,“”);
}
//向下滚动元素Web,在本例中为Ver Detalles del Plan(修改Xpath)
公共静态void WebElement(ChromeDriver驱动程序)引发异常{
((JavascriptExecutor)driver.executeScript(“参数[0]。ScrollingToView();”,
driver.findelelement(By.xpath(“/*[@id='option1']]/div[1]/div[5]/a”);
}
}
对于向下滚动页面慢速移动,代码为:
public static void slowmotionDown(InternetExplorerDriver driver) throws Exception {
for (int second = 0;; second++) {
if(second >=60){
break;
}
((JavascriptExecutor) driver).executeScript("window.scrollBy(0,13)", "");
}
}
public static void slowmotionUp(InternetExplorerDriver driver) throws Exception {
for (int second = 0;; second++) {
if(second >=60){
break;
}
((JavascriptExecutor) driver).executeScript("window.scrollBy(1000,-13)", "");
}
}
对于Scrollpage slowmotion up,代码为:
public static void slowmotionDown(InternetExplorerDriver driver) throws Exception {
for (int second = 0;; second++) {
if(second >=60){
break;
}
((JavascriptExecutor) driver).executeScript("window.scrollBy(0,13)", "");
}
}
public static void slowmotionUp(InternetExplorerDriver driver) throws Exception {
for (int second = 0;; second++) {
if(second >=60){
break;
}
((JavascriptExecutor) driver).executeScript("window.scrollBy(1000,-13)", "");
}
}
这很好。您的问题需要编辑[如何提问]()嗨,smit9243:我不太清楚OOP,但这正是我想做的。我想从该类调用(或调用)另一个类中的方法。我修改了答案,如果您还有其他问题,请告诉我。抱歉,这里的问题是因为向上滚动方法(慢动作)不起作用。我正试图从另一个类调用该类。哦,但是我在尝试运行慢动作向上滚动时遇到了一个问题://慢动作向上公共静态void slowmotionUp(ChromeDriver驱动程序)抛出异常{for(int second=0;;second++){if(second>=60){break;}((JavascriptExecutor)驱动程序)(1000,13)", ""); } }