Selenium - Firefox webdriver只会截取部分截图

时间:2016-08-09 15:32:41

标签: java selenium webdriver

从我读过以下代码:

    File s = ((TakesScreenshot)driver_).getScreenshotAs(OutputType.FILE);
    try {
        FileUtils.copyFile(s,new File("C:\\scr.png"));
    } catch (IOException exception) {
        exception.printStackTrace();
    }

应该拍整页截图。但在我的情况下,它只会截取浏览器窗口中当前可见的任何内容。这是预期的行为还是在代码中出了问题?

1 个答案:

答案 0 :(得分:0)

是的,这是Firefox的预期行为。 如果您想要获取整页截图,可以使用类似的内容将整个内容缩小到可见区域

executor = (JavascriptExecutor)driver.getDriver();
executor.executeScript(
         "document.body.style.zoom=
            (top.window.screen.height-70)/
            Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);");
File scrFile = ((TakesScreenshot)driver.getDriver()).getScreenshotAs(OutputType.FILE);

它会尝试将所有内容带到可见区域,但您仍然可以错过最底层区域的一些内容。