使用SeleniumWebDriver 3.4.0滚动Google结果
我无法将谷歌的搜索结果页面滚动到最后。有人能给我一些关于下面代码1的建议吗。尝试通过以下方式使用JS使用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
(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);