You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Capybara中为ChromeDriver设置prefers-reduced-motion: reduce?

在ChromeDriver/Capybara中模拟prefers-reduced-motion: reduce设置

你之前使用的page.driver.header是RackTest驱动的专属方法,ChromeDriver(Selenium驱动)并不支持该方法,以下是两种可行的解决方案:

方法一:注册驱动时配置Chrome偏好

在测试配置文件(如test_helper.rb)中,注册带有减少动画偏好的Chrome驱动:

Capybara.register_driver :selenium_chrome_reduced_motion do |app|
  options = Selenium::WebDriver::Chrome::Options.new
  # 设置启用减少动画的偏好
  options.add_preference('enable_reduced_motion', true)
  Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end

# 将默认驱动切换为配置好的驱动
Capybara.default_driver = :selenium_chrome_reduced_motion

方法二:通过DevTools协议动态设置

如果需要在单个测试或setup中动态配置,可使用Chrome DevTools协议:

setup do
  # 通过DevTools命令模拟prefers-reduced-motion: reduce
  page.driver.browser.devtools.send_command(
    'Emulation.setEmulatedMedia',
    media: '',
    features: [{name: 'prefers-reduced-motion', value: 'reduce'}]
  )
end

内容的提问来源于stack exchange,提问作者Dorian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 10:14:58