2015-02-06 173 views
2

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

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")); 

这是采取屏幕截图,但只在正常分辨率,而不是在放大的分辨率。

请有人帮助如何在硒中完成,或者即使硒对此也是正确的工具。如果不是那么,请建议其他适用于我的要求的其他内容。

+0

你能解释这一行的动作吗? WebElement html = driver.findElement(By.tagName(“html”)); – 2015-02-06 06:49:45

+0

@RupeshShinde - 我认为这是通过标签找到整个html页面,所以它说webdriver放大整个html页面。 – 2015-02-06 06:51:20

+0

@RupeshShinde - HelpingHands是对的。它是获取html元素,这是整个页面,并且它们放大到页面中。 – 2015-02-06 06:57:13

回答

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")); 

我只是开了一个网页,并把它截图在原来的大小和即使我通过手动和使用您的代码(变焦)放大它,我得到了放大分辨率屏幕截图。

+0

您提供的代码和我使用的代码没有改变,这不符合我的要求。我的要求是,当我在正常分辨率下将图像转换为图像时具有x * y像素,但当以500%放大时,转换后的图像应该具有5x * 5y像素,这不会发生。 – 2015-02-09 12:11:17

+0

是Gaurav ..我没有改变任何东西,但它为我工作..我得到了缩放页面的截图。对于缩放,我通过暂停执行一段时间并使用代码手动缩放。这两种方式对我都有效。 – naveenz 2015-02-10 15:05:20

1

您可以测试:

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

zoomFactor放大的屏幕截图。

相关问题