3

我在 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));

此代码放大 url。现在我想以放大的分辨率截取屏幕截图。

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

这是截取屏幕截图,但仅以正常分辨率而不是放大分辨率。

请有人帮助如何在硒中完成,或者即使硒是正确的工具。如果没有,请提出其他适合我要求的东西。

4

2 回答 2

1

您可以对此进行测试:

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

zoomFactor 缩放屏幕截图。

于 2016-01-25T07:21:57.423 回答
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"));

我刚刚打开一个页面并以原始大小对其进行了截图,即使在我手动缩放它并使用您的代码(用于缩放)之后,我也得到了缩放分辨率的截图。

于 2015-02-09T09:23:32.423 回答