采用API的自动截图

时间:2013-05-24 13:45:40

标签: android iphone screenshot webpage-screenshot

在我们公司,我们需要截取整个网站地图的截图,手动完成这项工作是一件很大的痛苦。我使用Webdriver API(Selenium 2)在浏览器上截取屏幕截图,但我们也有移动网络。 Google Chrome具有设备维度设置,可将网站显示为移动网站。在Google Chrome中无法使用重新调整大小的浏览器屏幕截图。不确定是否可以截取Iphone,Android手机或两个虚拟设备的截图。研究后没有找到一个好的答案。我正在尝试实现一些能够自动截取任何移动网页并将其保存到基于URL的特定目录的内容。我更喜欢使用任何JAVA库来执行此操作,但可以打开任何建议。希望能在这里得到最好的答案。

4 个答案:

答案 0 :(得分:2)

使用Robotium的设备

您可以使用robotium从设备中截取屏幕截图。 From the Q&A at the Robotium project website

  

我可以从Robotium内部截取屏幕截图吗?

     

是的,你可以。使用takeScreenshot()保存屏幕截图   “/ SD卡/ Robotium-截图/”。观察这个功能   需要写权限(android.permission.WRITE_EXTERNAL_STORAGE)   在被测试应用程序的AndroidManifest.xml中。

使用构建服务器从模拟器

替代方案是使用像jenkins / hudson这样的构建服务器。有一些插件可用于在构建期间启动模拟器并从该模拟器中截取屏幕截图。

有关this website listing the plugin details上提供的详细信息。

答案 1 :(得分:1)

回顾一下,您需要一个API,以便使用不同的视口捕获某些网站的自动屏幕截图,并且可能还有不同的用户代理标题,因为您需要它看起来真实的移动设备。

我亲自使用以下两个API取得了很好的经验:

我将简要介绍一下如何使用iPhone viewportuser-agent(使用screenshotlayer API获取屏幕截图,因为它是免费的)来捕获屏幕截图:

这是您要使用的API请求网址:

  
http://api.screenshotlayer.com/api/capture
  ? access_key = YOUR_ACCESS_KEY
  & url = http://www.tumblr.com
  & user_agent = Mozilla/5.0 (iPhone; CPU iPhone OS 8_0_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12A366 Safari/600.1.4&viewport=375x667   
  & viewport = 375x667

现在API将返回给定URL的iPhone 6屏幕截图(在我们的案例中为 tumblr.com )。

对于url2png,它非常相似。 希望这可以提供帮助!

修改

我忘了提到 - 你可以指定一个`ftp'路径来将快照导出到

答案 2 :(得分:-1)

您可以尝试Browshot用于拥有虚拟移动浏览器(iPhone,iPad和Android)的公共网站。他们有一个API。没有Java库(只有Perl,PHP,Ruby和Python),但您可以使用Mashape中的Java库。

答案 3 :(得分:-1)

您可以尝试ApiFlash Screenshot API。该API基于Chrome,因此渲染几乎完美,并且始终与Web标准保持同步。

enter image description here

您可以使用AVAssetWriterwidth参数控制屏幕截图的大小。这是一个完整的Java示例,您可以根据自己的特定问题进行调整。

height