首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过PhantomJS访问PDF网页(Watir,GhostDriver)

通过PhantomJS访问PDF网页(Watir,GhostDriver)
EN

Stack Overflow用户
提问于 2015-02-04 17:47:53
回答 1查看 468关注 0票数 1

我正在使用watir-webdriver和chromedriver (在Mac上)进行可视化测试。一旦它开始工作,我转而使用PhantomJS进行无头测试。

代码语言:javascript
复制
def browser_init
  client = Selenium::WebDriver::Remote::Http::Default.new
  client.timeout = @browser_timeout 

  case @browsing_type
    when 'visual'
      @b = Watir::Browser.new :chrome, :http_client => client
    when 'headless'
      @b = Watir::Browser.new :phantomjs, :http_client => client
  end
end 

这是我的问题和问题。我测试的一些网页要么以PDF格式完全存储(并有以.pdf结尾的URL ),要么由嵌入的PDF内容组成。这些网页没有正确地反映在:幻影:他们的@b.title或@b.url指向之前访问的页面。在:chrome的情况下,pdf页面的信息是可访问的,因此可用于测试目的。

由于PhantomJS是众所周知的,它能够产生PDF截图的网页,我很怀疑它不能打开网页上的PDF页面。

我是否正确地理解了PhantomJS没有PDF插件,或者我做错了什么?我将非常感谢任何关于在任何情况下对PDF页面进行无头测试的建议。

EN

回答 1

Stack Overflow用户

发布于 2015-02-16 23:53:06

你的问题的答案真的取决于你说“访问”时的意思。如果您的目的是呈现PDF和捕获图像,您可能在phantomJS所能做的之外,需要一个真正的浏览器。如果您的目的是解析PDF并访问文档中的文本,那么您可以遵循这个例子并使用一些JS库来处理PDF文件并通过PhantomJS运行它们。

在phantomJS能够呈现PDF的情况下,您做了以下假设:

由于PhantomJS是众所周知的,它能够产生PDF截图的网页,我很怀疑它不能打开网页上的PDF页面。

使用PDF规范将输出格式化为嵌入式图像是一回事。绘制PDF (包括图像、文本、文本效果、背景等)是另一件更加困难的事情。有很多程序可以用PDF格式“写”东西,但不能“读取”PDF文件。

PhantomJS的主要目的是允许在不需要浏览器和页面呈现开销的情况下执行Javascript代码。您可以使用它来做一些事情,比如测试JS代码,这是AJAX驱动的网页的一部分。您还可以使用它作为解释器来执行JS代码--我相信(但还没有找到确认)--出于性能原因,PhantomJS唯一一次真正产生呈现网页所需的开销是在创建屏幕截图时。此外,由于它是设计为无头的,有不支持插件,这是如何呈现的PDF通常是支持大多数浏览器。这将是主要的障碍,将阻止您实际呈现,然后捕获PDF‘页面’的截图。为此,您需要一个真正的浏览器,土坯或其他(foxit?)支持PDF的插件。然后,要运行无头,您需要使用类似于XVFB的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28327988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档