首页 > 解决方案 > 使用无头 chrome 浏览 spotify 显示“在浏览器中启用播放器”

问题描述

我要归档的内容

我试图在不显示播放器的情况下在后台播放 spotify。

环境

$ uname -a
Darwin mbp.local 16.7.0 Darwin Kernel Version 16.7.0: Thu Jun 21 20:07:39 PDT 2018; root:xnu-3789.73.14~1/RELEASE_X86_64 x86_64

$ chromedriver --version
ChromeDriver 2.41.578706 (5f725d1b4f0a4acbf5259df887244095596231db)

$ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version
Google Chrome 69.0.3497.81
  1. 正常的 chromedriver 显示和播放 spotify 没有问题
  2. 无头 chromedriver 不会

在此处输入图像描述

Capybara.register_driver :chrome do |app|
  options = Selenium::WebDriver::Chrome::Options.new
  options.add_argument("user-data-dir=/path/to/profile/dir")
  options.add_argument("--headless")
  options.add_argument("--window-size=1280,800")
  Capybara::Selenium::Driver.new(app,
    browser: :chrome,
    options: options,
  )
end

session = Capybara::Session.new(:chrome)
session.visit "https://spotify.com"
# .. login script / login with the same chrome profile without --headless beforehand
session.click_on "Web Player"
# this give me the image above "enable player in your browser"
session.save_screenshot("/path/to/a/filename.png")

我的想法

  1. 它是“Widevine 内容解密模块”相关的,Widevine 无论如何都不会在 headless 中加载?
  2. 如果在带有 xvfb + 普通 chromedriver 的无头 linux 上会播放 spotify?

标签: rubygoogle-chromeselenium-webdriverselenium-chromedriverspotify

解决方案


推荐阅读