2009-09-28 42 views

回答

2

Litmus是这种事情的一个很好的在线资源;您可以提交一个URL并使其在最新的浏览器上进行全屏截图。如果您获得付费订阅或在周末使用它,您将可以在所有22种浏览器上进行测试,而不仅仅是最新的测试。我一直使用这个网站,我认为这是惊人的。

BrowserShots也很大,并且它支持吨以上的浏览器,但在我的经验,这是一个很大得慢。不过,如果你需要需要来测试一些浏览器,石蕊不会。

+0

我并不是说我需要在不同的浏览器上测试网页,而是需要从给定的网址快速获取屏幕截图。是否有任何开源/免费的应用程序,它不一定是PHP或Java,只是免费的软件,可以工作... – newbie 2009-09-28 18:36:31

+0

我想我不理解差异。你仍然可以使用Litmus或Browsershots来做同样的事情,只需要为一个浏览器运行测试。 – Twisol 2009-09-28 18:40:13

3

您需要有一个特殊版本的浏览器,在之后“渲染”页面,它由PHP或Java处理。

当您ping运行Windows,OSX或Linux窗口管理器的服务器后,您最有可能需要设置一些自定义自动化脚本来点击URL。

有服务在那里会为你做屏幕截图。

http://www.browsercam.com

http://webthumb.bluga.net/home

仅举几例。

0

如果您有专用的服务器,您也可以自己做。这个想法是以全屏模式启动X服务器和浏览器,进行拍摄并将其保存到图像文件中。

根据您的利用率(偶尔或密集),可以适应的过程中(即不杀生X每次,等...),使其更快。

0

从问题中不清楚您是否希望以编程方式或手动执行此操作。如果是手动的:Firefox有一个很好的插件Abduction!,它将页面渲染为图像。否则,凯恩的答案已经涵盖了很多。

0

我发现CutyCapt是采取截图的最简单的解决方案,它会在Windows和Linux工作。

Installinging在Windows:

只需下载文件并执行。

Installining Debian中:

apt-get install cutycapt xvfb 

和运行:

xvfb-run --server-args="-screen 0, 1024x768x24" /usr/bin/cutycapt --url=http://www.google.com --out=/home/screenshots/screenshot_name.png 
2

对我来说,最好的解决办法: 使用selenium webdriver 而采取的截图可以是简单的this

import java.io.File; 
import java.net.URL; 

import org.openqa.selenium.OutputType; 
import org.openqa.selenium.TakesScreenshot; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.remote.Augmenter; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 

public class Testing { 

    public void myTest() throws Exception { 
     WebDriver driver = new RemoteWebDriver(
           new URL("http://localhost:4444/wd/hub"), 
           DesiredCapabilities.firefox()); 

     driver.get("http://www.google.com"); 

     // RemoteWebDriver does not implement the TakesScreenshot class 
     // if the driver does have the Capabilities to take a screenshot 
     // then Augmenter will add the TakesScreenshot methods to the instance 
     WebDriver augmentedDriver = new Augmenter().augment(driver); 
     File screenshot = ((TakesScreenshot)augmentedDriver). 
          getScreenshotAs(OutputType.FILE); 
    } 
} 

不要忘记使用FireFoxDriver。 HtmlUnitDriver不会以这种方式工作,因为它是无头的。

该死的容易!

+0

但是你需要Selenium服务器运行并安装firefox浏览器才能正常工作? – newbie 2014-06-29 12:02:50

+0

@newbie安装Firefox浏览器required.But没有需要运行Selenium服务器。您只需将所需的库导入到您的Java项目中。 – rahulserver 2014-06-29 15:44:25

0

试试headless browser。其中任何一项应该这样做:

  • PhantomJS - >使用 '的Webkit' 布局引擎(Safari浏览器/铬)
  • TrifleJS - >使用 '三叉戟' 布局引擎(Internet Explorer)中
  • SlimerJS - >采用“壁虎布局引擎(火狐)

您可以通过下面的JavaScript代码采取截图(保存到文件renderpage.js):

var page = require('webpage').create(); 
page.open('http://en.wikipedia.org', function() { 
    page.render('wikipedia.png'); 
}); 

然后通过命令行执行:

> phantomjs.exe renderpage.js 

这将创建一个文件wikipedia.png你的屏幕截图。