我正在使用Ruby,Watir和Chromedriver。我需要在我的网络测试中的pdf链接中clicingk时禁用pdf-viewer。我试了很多不同的设置,如:
prefs = {
plugins: {
plugins_disabled: ['Chrome PDF Viewer']
},
download: {
prompt_for_download: false,
directory_upgrade: true,
default_directory: '/pdf_downloads'
}
}
@browser = Watir::Browser.new :chrome, :prefs => prefs
或者
prefs= {
'profile' => {
'default_content_setting_values' => {'automatic_downloads' => 1}
}
}
@browser = Watir::Browser.new :chrome, :prefs => prefs
有人可以提供一些提示或建议吗?
答案 0 :(得分:2)
您可以通过启用always_open_pdf_externally设置来禁用PDF查看器。这将导致文件被下载。
prefs = {
plugins: {
always_open_pdf_externally: true
}
}
browser = Watir::Browser.new :chrome, prefs: prefs
答案 1 :(得分:0)
您无法禁用PDF查看器,但可以在窗口中循环并关闭PDF窗口。
答案 2 :(得分:0)
感谢您的回答。
我测试的背景是检查网络上可用的pdf是否与引用的pdf相同。最后检查下载的pdf是否与作为参考的pdf相同,我最好的选择是阅读两个内容并在它们之间进行比较。我创造了一个简单的小功能
def pdf_text(url_file_input)
pdf_text = Array.new
io = open(url_file_input)
reader = PDF::Reader.new(io)
reader.pages.each do |page|
pdf_text << page.text
end
return pdf_text
end
后来使用expect进行比较:
expect(pdf_text("url_to_file.pdf")).to eql(pdf_text('path_to_file.pdf'))