首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium Webdriver (Java)创建用于滚动的类

Selenium Webdriver (Java)创建用于滚动的类
EN

Stack Overflow用户
提问于 2017-07-11 20:24:22
回答 5查看 782关注 0票数 0

我试图为不同类型的卷轴创建一个类(卷轴向上、向下、页面底部等等),但我做不到。

代码语言:javascript
复制
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();

求你帮帮我。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-06-11 14:00:12

对于滚动页慢动作,代码是:

代码语言:javascript
复制
public static void slowmotionDown(InternetExplorerDriver driver) throws Exception {
        for (int second = 0;; second++) {
            if(second >=60){
                break;
            }
            ((JavascriptExecutor) driver).executeScript("window.scrollBy(0,13)", "");
        }
    }

对于滚动页慢动作,代码是:

代码语言:javascript
复制
 public static void slowmotionUp(InternetExplorerDriver driver) throws Exception {
        for (int second = 0;; second++) {
            if(second >=60){
                break;
            }
            ((JavascriptExecutor) driver).executeScript("window.scrollBy(1000,-13)", "");
        }
    }

这很好用。

票数 0
EN

Stack Overflow用户

发布于 2017-07-11 20:43:07

我在您的代码中看到了很多错误:

  1. 您正在scrolldown方法中干扰驱动程序实例化。从里面移除所有与卷轴无关的东西。
  2. 显然,为了滚动工作,应该打开一些可滚动的网页.在滚动方法中,没有打开任何页面--只是空白的浏览器起始页。为此使用driver.get(<some url>)方法
  3. 一旦可滚动页面被打开-调用(JavascriptExecutor)driver.executeScript("window.scrollBy(0,250)", "");滚动窗口250个像素
票数 1
EN

Stack Overflow用户

发布于 2017-07-11 20:41:38

这不是Selenium Java问题,这与面向对象编程有关。您熟悉java类是如何工作的吗?

  1. 创建一个名为ScrollMethods的新类,并将所有滚动方法都放在该类中。
  2. 在测试中,只需实例化该类: ScrollMethods scrollMethods =新ScrollMethods();

现在,您应该能够在测试类中调用Scroll方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45043863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档