JavascriptExecutor 不执行滚动操作

ann*_*yka 5 javascript java selenium

我正在对 YouTube 视频进行自动化测试;以这个为例 - https://www.youtube.com/watch?v=AjWfY7SnMBI。我想向下滚动页面以检查评论是否加载。但是 Javascript 不会被执行,滚动也不会发生。测试通过,因为没有错误消息。这可能是什么原因造成的?

我尝试过以下方法:

js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
js.executeScript("window.scrollTo(0, 2500);");
Run Code Online (Sandbox Code Playgroud)

两者都不起作用。

public void scrolledCommentCount() throws InterruptedException{
    JavascriptExecutor js = (JavascriptExecutor)driver;
    js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
    Thread.sleep(9000);
    System.out.print("Scrolled");
Run Code Online (Sandbox Code Playgroud)

Kun*_*duK 3

您可以使用sendKeyspagedown 方法。尝试此代码。希望这会有所帮助。

JavascriptExecutor js = (JavascriptExecutor)driver;

        while(true){

            Long height=(Long) js.executeScript("return document.body.scrollHeight");
            System.out.println(height);
            Thread.sleep(1000);
            driver.findElement(By.tagName("body")).sendKeys(Keys.END);        

            if (height==0)
            {
                break;
            }               

        } 
Run Code Online (Sandbox Code Playgroud)