我正在使用Watir登录应用程序,按下某些按钮等...基本上是一个人会使用Watir的正常内容。
但是,我的问题是我需要测试一个特定的页面。它实际上是一个动态生成的PDF,我需要从中获取实际的二进制数据,以便我可以使用我们正在使用的某个gem加载它。这通常适用于静态PDF文件,因为我们可以使用:
open("http://site.com/something.pdf")
这适用于静态PDF。但是,对于动态生成的一个,它不起作用,因为我们使用Ruby发送HTTP请求,并且它不知道Watir正在使用的头/ cookie /会话。因此,我们不会获得实际的PDF,而是获得登录页面。
我们尝试的另一件事是使用Watir获取PDF:
@browser.goto "http://site.com/dynamic/thepdffile"
@browser.text
@browser.html
我们尝试从页面获取文本或html,但没有运气,因为firefox在加载pdf时创建了一个DOM,因此文本是一个空字符串,而html是firefox在查看pdf页面时创建的DOM。我们需要原始HTTP响应,似乎没有办法提取它。
所以我们需要一个解决方案,在我看来,我们有这些选择:
或者如果您有其他想法请分享!提前谢谢!
答案 0 :(得分:1)
我想出了一个解决方案。
在firefox的配置文件中,您可以将plugin.scan.Acrobat设置为“999”,这将有效地禁用PDF插件。
profile = Selenium::WebDriver::Firefox::Profile.new
profile['plugin.scan.Acrobat'] = "999"
b = Watir::Browser.new :firefox, :profile => profile