使用Ruby,Watir,Chrome初始化带有选项的浏览器问题

时间:2019-06-23 21:52:21

标签: ruby selenium-chromedriver watir

我有一些Web爬虫脚本已经使用了一段时间了,并且一直没有问题。但是,由于某处的更新(我认为chrome + chromedriver),浏览器未加载我指定的首选项/选项。

当前代码:

preferences = { 
  :download => {
    :prompt_for_download => false,
    :directory_upgrade => true,
    :default_directory => 'C:/DownloadFolder/', 
  }   
}   
args = ['--disable-infobars']
browser = Watir::Browser.new :chrome, :chrome_options => {:detach => true, :prefs => preferences, :args => args}

我注意到的问题是'--disable-infobars'和下载文件夹位置没有被应用。

红宝石版本:2.3.3p222

watir版本:6.16.5

Selenium Webdriver版本:3.142.3

chrome版本:75.0.3770.100

chromedriver版本:75.0.3770.90

1 个答案:

答案 0 :(得分:0)

从我到其他地方获得帮助:

options = Selenium::WebDriver::Chrome::Options.new.tap do |o|
  o.add_argument('--disable-infobars')   
  o.add_preference(:download, directory_upgrade: true,
                              prompt_for_download: false,
                              default_directory: 'C:\\DownloadFolder\\')   
  o.add_option(:detach, true)  
end                       

browser = Watir::Browser.new :chrome, options: options

两件事解决了问题。 1是通过硒而不是Watir指定选项。另一个不再能够在文件夹路径中使用单个正斜杠。