0

IE ブラウザのページ全体をキャプチャする必要があります。Webドライバーを使用しています。助けてください。

以下のコードは、現在のウィンドウのみをキャプチャするために使用されます。

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
// Now you can do whatever you need to do with it, for example copy somewhere
FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));
4

2 に答える 2

1

スクリーンショットを撮る前に、ブラウザを全画面表示に変更できます。これはコードです:

private void changeToFullScreen() {
    try {
        Robot r;
        r = new Robot();
        r.keyPress(java.awt.event.KeyEvent.VK_F11);
        r.keyRelease(java.awt.event.KeyEvent.VK_F11);
        driver.sleep(2);
    } catch (AWTException e) {
        log.error("It was not possible to maximize", e)
        driver.manage().window().maximize();
    }
}

画面サイズを変更したくない場合は、ブラウザーの高さを取得し、一番下までスクロールしながらスクリーンショットを撮ることができます (ロボットで実行できます)。

int numberOfScrolls = pageHeight / browserHeight;
for(int i = 0 ; i < numberOfScrolls ; i++){
   takeScreenshot();
   scrollDown(browserHeight);
}
concatenateScreenshots();
于 2014-06-19T15:37:51.577 に答える
0
import java.io.File;
import javax.imageio.ImageIO;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import ru.yandex.qatools.ashot.AShot;
import ru.yandex.qatools.ashot.Screenshot;
import ru.yandex.qatools.ashot.shooting.ShootingStrategies;

public class TakeScreenshotWithScroll {
    static WebDriver driver;
    public static void main(String args[]) throws Exception{
        String key = "webdriver.gecko.driver";
        String value = "driver/geckodriver.exe";
        driver = new FirefoxDriver();
        System.setProperty(key, value);
        driver.get("ENTER THE URL HERE");
        Thread.sleep(2000);
        Screenshot fpScreenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)).takeScreenshot(driver);
        ImageIO.write(fpScreenshot.getImage(),"PNG",new File("D:///FullPageScreenshot.png"));
    }
}

aShot Jar ファイルのダウンロード リンクは次のとおりです。

于 2017-12-06T04:29:04.053 に答える