我无法将Google的搜索结果页面滚动到最后。任何人都可以给我指出以下代码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)");
}
}
}
答案 0 :(得分:1)
使用此:
((JavascriptExecutor) driver).executeScript("window.scrollBy(0,250)");
滚动到特定元素
js.executeScript("arguments[0].scrollIntoView(true);",element);
此处元素是您想要滚动的Webelement
或者您可以使用Robot
类
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_PAGE_DOWN);
robot.keyRelease(KeyEvent.VK_PAGE_DOWN);
答案 1 :(得分:0)
更改以下代码
for(var i=1;i<=3;i++)
{
j.executeScript("window.scrollTo(0,500)");
}
到
for(int i=1;i<=3;i++)
{
j.executeScript("window.scrollTo(0, arguments[0]*500)", i);
}
它应该有效。您使用的500是绝对值,而不是滚动的delta。或者使用scrollBy
for(int i=1;i<=3;i++)
{
j.executeScript("window.scrollBy(0,500)");
}
答案 2 :(得分:0)
j.executeScript("window.scrollBy(0,250)", "");
或者,你可以这样做:
j.executeScript("scroll(0, 250);");