horik score 44
2016/04/17 22:23 投稿
PhantomJSDriverで下スクロールする |
JavaのSeleniumを使ってWebサイトのスクレイピングをしています。 |
JavaScriptで下にスクロールすることでコンテンツが読み込まれていくサイトで、 |
すべてのコンテンツを表示してからスクリーンショットを取りたいと考えています。 |
FirefoxDriverでは想定通りにスクロールをしてスクリーンショットが取れましたが、 |
PhantomJSDriverでは下スクロールが機能していならしくコンテンツをすべて読み込んでくれません。 |
何かいい方法はありませんでしょうか? |
// ソース |
DesiredCapabilities cap = new DesiredCapabilities(); |
cap.setCapability("takeScreenshot", true); |
WebDriver driver = new PhantomJSDriver(cap); |
driver.get("https://facebook.com/login.php"); |
driver.get("目的のURL"); |
// JavaScriptExecutorを使ったスクロール |
JavascriptExecutor js = (JavascriptExecutor)driver; |
js.executeScript("window.scrollTo(0, 1000)"); |
// Actionsを使ったスクロール |
Actions act = new Actions(driver); |
act.sendKeys(Keys.PAGE_DOWN).perform(); |
// スクリーンショット |
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); |
FileUtils.copyFile(shot, new File("./screen.png")); |
driver.quit(); |