使用SeleniumWebDriver 3.4.0滚动Google结果

使用SeleniumWebDriver 3.4.0滚动Google结果,selenium,selenium-webdriver,selenium-chromedriver,Selenium,Selenium Webdriver,Selenium Chromedriver,我无法将谷歌的搜索结果页面滚动到最后。有人能给我一些关于下面代码1的建议吗。尝试通过以下方式使用JS (a)j.executeScript("window.scrollTo(0,500)") (b)j.executeScript("window.scrollBy(250,350)") (c)j.executeScript("window.scrollTo(0,document.documentElement.scrollHeight")** WebDriver driver

我无法将谷歌的搜索结果页面滚动到最后。有人能给我一些关于下面代码1的建议吗。尝试通过以下方式使用JS

(a)j.executeScript("window.scrollTo(0,500)")
(b)j.executeScript("window.scrollBy(250,350)") 
(c)j.executeScript("window.scrollTo(0,document.documentElement.scrollHeight")**

        WebDriver driver = new ChromeDriver();
        driver.navigate().to("https://www.google.com");
        driver.manage().window().maximize();

        // Google News

        driver.findElement(By.id("lst-ib")).click();
        driver.findElement(By.id("lst-ib")).sendKeys("News");
        driver.findElement(By.id("lst-ib")).sendKeys(Keys.RETURN);
        Thread.sleep(2000);
        driver.findElement(By.xpath("//div[@class='rc']//a")).click();
        Thread.sleep(4000);
        JavascriptExecutor j = (JavascriptExecutor)driver;
        for(int i=1;i<=3;i++)
        {
            j.executeScript("window.scrollTo(0,500)");

        }
    }
}
(a)j.executeScript(“window.scrollTo(0500)”)
(b) j.executeScript(“window.scrollBy(250350)”)
(c) j.executeScript(“window.scrollTo(0,document.documentElement.scrollHeight”)**
WebDriver驱动程序=新的ChromeDriver();
驱动程序。导航()。到(“https://www.google.com");
driver.manage().window().maximize();
//谷歌新闻
driver.findElement(By.id(“lst ib”))。单击();
driver.findElement(By.id(“lst ib”).sendKeys(“News”);
driver.findElement(By.id(“lst ib”)).sendKeys(key.RETURN);
《睡眠》(2000年);
findElement(By.xpath(“//div[@class='rc']//a”)).click();
睡眠(4000);
JavascriptExecutor j=(JavascriptExecutor)驱动程序;
对于(int i=1;i更改以下代码

    for(var i=1;i<=3;i++)
    {
        j.executeScript("window.scrollTo(0,500)");

    }
或者,您可以执行以下操作:

j.executeScript("scroll(0, 250);");
使用以下命令:

((JavascriptExecutor) driver).executeScript("window.scrollBy(0,250)");
滚动到特定元素

js.executeScript("arguments[0].scrollIntoView(true);",element);
这里的元素是您想要滚动的
Webelement

或者您可以使用
Robot
class

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_PAGE_DOWN);
robot.keyRelease(KeyEvent.VK_PAGE_DOWN);

请说什么是错误消息没有错误消息,但在执行上述操作时没有执行滚动操作code@Rohit您是想滚动到某个特定元素,还是只是在页面上向下滚动?@smit9234我不是想滚动到某个特定元素,而是想在页面上向下滚动。@Rohit新闻结果页上有多个部分,这就是为什么它在上一页上有效,但在新闻结果上无效。请尝试在Thread.sleep之后添加另一个单击事件,例如driver.findelelement(By.cssSelector(“c-wiz.fwqib.ChVoCd.rorccp.AfWyGd\n”)。单击();这将告诉Web驱动程序要滚动页面的哪个部分。感谢您的及时回复。使用(a)j.executeScript(“window.scrollTo(0500*i)”;在线程“main”org.openqa.selenium.WebDriverException中获取以下异常异常异常:未知错误:未定义i(b)j.executeScript(“window.scrollBy(0500)”);未执行任何操作将
int i
更改为
var i
谢谢,先生。由于我是selenium&java新手,无法解决以下问题。“var无法解析为类型”。你能帮我一下吗。谢谢你的时间。我的错,请检查编辑。它应该是
int
只有我知道代码是在JS中执行的。现在你有两个版本。我在google new上用chrome手动测试了它,它们工作正常谢谢你。先生。`j.executeScript(“window.scrollBy(0500)”;`&
j.executeScript(“window.scrollTo(0,参数[0]*500)”,i)
执行时不执行滚动操作,但在其他网站上手动工作,但在谷歌新闻页面上不工作。感谢Kapiil的回复,但在执行上述代码时不执行任何操作。是否有其他解决方案?我输入了一个错别字,jse应该是j。谢谢Kapil。我已经更改了t帽到
j.executeScript(“window.scrollBy(0250)”,”;
j.executeScript(“scroll(0250)”;)
但仍然是相同的结果,请使用下面的解决方案或使用robot类谢谢@iamsankalp89。使用robot类,上述工作按预期工作。使用JS,我想知道为什么它不单独在google的结果页中工作,而在其他网站上工作。
((JavascriptExecutor) driver).executeScript("window.scrollBy(0,250)");
js.executeScript("arguments[0].scrollIntoView(true);",element);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_PAGE_DOWN);
robot.keyRelease(KeyEvent.VK_PAGE_DOWN);