JavaのSeleniumを使ってWebサイトのスクレイピングをしています。
JavaScriptで下にスクロールすることでコンテンツが読み込まれていくサイトで、
すべてのコンテンツを表示してからスクリーンショットを取りたいと考えています。
FirefoxDriverでは想定通りにスクロールをしてスクリーンショットが取れましたが、
PhantomJSDriverでは下スクロールが機能していならしくコンテンツをすべて読み込んでくれません。
何かいい方法はありませんでしょうか?
// ソース
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("takeScreenshot", true);
WebDriver driver = new PhantomJSDriver(cap);
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();
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/18 07:48