【问题标题】:How to disable pdf-viewer built-in in chromedriver如何禁用 chromedriver 内置的 pdf-viewer
【发布时间】:2023-04-02 00:05:02
【问题描述】:

我正在使用 Ruby、Watir 和 Chromedriver。在我的网络测试中单击 pdf 链接时,我需要禁用 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

谁能给点建议或建议?

【问题讨论】:

    标签: ruby automated-tests selenium-chromedriver watir


    【解决方案1】:

    感谢您的回答。

    我测试的上下文是检查网络上可用的 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'))
    

    【讨论】:

      【解决方案2】:

      您可以通过启用 always_open_pdf_externally 设置来禁用 PDF 查看器。这将导致文件被下载。

      prefs = {
        plugins: {
          always_open_pdf_externally: true
        }
      }
      browser = Watir::Browser.new :chrome, prefs: prefs
      

      【讨论】:

        【解决方案3】:

        您不能禁用 PDF 查看器,但可以循环浏览窗口并关闭 PDF 窗口。

        【讨论】:

          猜你喜欢
          • 2016-05-19
          • 1970-01-01
          • 2017-06-12
          • 1970-01-01
          • 2019-10-24
          • 2021-10-30
          • 2021-11-04
          • 2012-11-23
          • 2012-12-16
          相关资源
          最近更新 更多