【问题标题】:Watir won't download PDF, only opens in viewerWatir 不会下载 PDF,只能在查看器中打开
【发布时间】:2021-05-20 15:54:31
【问题描述】:

我尝试使用 Selenium 进行测试,但无法下载 pdf,pdf 一直打开。

查看我的其他帖子:RUBY: Selenium webdriver, setup to download pdf files instead of opening them

有人建议尝试 Watir,所以我做了,并且得到了相同的结果。这是我的 Watir 设置。请告知如何解决此问题。

require 'watir'
require 'pry'

prefs = {
  download: {
    prompt_for_download: false,
    default_directory: '/Users/ar/pdf_downloads'
  }
}

browser = Watir::Browser.new :chrome, options: {prefs: prefs}

# Goto Login Page (file)
url="file:///Users/ar/info.html"
browser.goto url

browser.button(id: 'formsubmit').click

sleep 5
# Goto info
info_url = 'https://webapp.domain.com/info'
browser.goto info_url

sleep 5
elements = browser.elements(css: "#ar-pdfreport a")
link = elements.first.attribute("href")
browser.goto link

【问题讨论】:

    标签: ruby selenium selenium-webdriver watir


    【解决方案1】:

    Selenium-WebDriver v3.142.7 中存在一个错误,使用符号作为首选项会产生错误的结果 - 例如,没有设置下载目录。详情请见https://github.com/SeleniumHQ/selenium/issues/7917

    将符号切换为字符串:

    prefs = {
      download: {
        'prompt_for_download' => false,
        'default_directory' => '/Users/ar/pdf_downloads'
      },
      plugins: {
        'always_open_pdf_externally' => true
      }  
    }   
    

    【讨论】:

    • 现在正在设置,但我还需要更改 Chrome 的设置 - settings/content/pdfDocuments。如何更改上述内容以执行此操作?我找不到怎么做。谢谢!
    • 如果要下载文件,即如果我们可以手动下载文件,则上述设置将正常工作。但是对于PDF,当您单击链接时,它将在查看器中打开,因此它甚至不属于下载文件的类别。所以我猜上面的语法行不通。
    • 需要设置名为 plugins_always_open_externally 的东西。
    • 正如@ArundeepChohan 提到的,您需要为此设置额外的偏好。查看更新的答案。
    猜你喜欢
    • 2019-09-24
    • 2022-01-22
    • 2019-10-08
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 2022-06-11
    • 1970-01-01
    相关资源
    最近更新 更多