在Selenium中以放大状态获取整页截图

时间:2015-02-06 06:34:09

标签: java selenium selenium-webdriver selenium-firefoxdriver

我在selenium firefox webdriver中加载一个网页,然后我以500%放大到页面,然后我希望以500%的缩放分辨率拍摄页面的屏幕截图,但它不起作用

DesiredCapabilities desiredCapabilities = DesiredCapabilities.firefox();
desiredCapabilities.setPlatform(Platform.WINDOWS);
WebDriver driver = new FirefoxDriver(desiredCapabilities);
driver.get(url);
driver.manage().window().setSize(new Dimension(Toolkit.getDefaultToolkit().getScreenSize().width, Toolkit.getDefaultToolkit().getScreenSize().height));
WebElement html = driver.findElement(By.tagName("html"));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));

此代码放大到网址。 现在我想以放大的分辨率拍摄截图。

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("c:\\"+url.substring(url.lastIndexOf("/"),url.lastIndexOf("."))+".png"));

这是截图,但仅限于正常分辨率,而不是放大分辨率。

请有人帮助如何在硒中完成,或者即使硒是正确的工具。如果没有,请建议其他符合我要求的内容。

2 个答案:

答案 0 :(得分:1)

您可以测试一下:

String script = "var page = this;page.zoomFactor = 0.9;";
((PhantomJSDriver)driver).executePhantomJS(script);

zoomFactor缩放了截图。

答案 1 :(得分:0)

下面的代码对我有用。

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

我刚刚打开了一个页面,并以原始大小截取了它,甚至在我通过手动和使用你的代码缩放它(用于缩放)后,我得到了缩放分辨率截图。