gpt4 book ai didi

ruby-on-rails - 让 Headless Chrome 与 Capybara 一起工作

转载 作者:行者123 更新时间:2023-12-05 00:50:56 25 4
gpt4 key购买 nike

我有点卡住了,我正在关注关于这个的thoughtbots教程,一切“看起来”正确:https://robots.thoughtbot.com/headless-feature-specs-with-chrome

  • 我已经验证我的 Chrome 是版本 59
  • 我已经使用 brew 来安装 chromedriver,并验证它至少是 2.3 版

  • 我的 rails_helper文件(相关部分)如下所示:
    Capybara.register_driver :chrome do |app|
    Capybara::Selenium::Driver.new(app, browser: :chrome)
    end

    Capybara.register_driver :headless_chrome do |app|
    capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
    'chromeOptions:' => { args: %w(headless disable-gpu) }
    )

    Capybara::Selenium::Driver.new app,
    browser: :chrome,
    desired_capabilities: capabilities
    end

    Capybara.javascript_driver = :headless_chrome

    使用 chromedriver-helper gem 确实允许我很好地使用 chrome,但它不会保持 headless 状态。此外,当我检查它时,我会在 chrome 上确认自动化测试使用的不是 --headless标志出现。

    现在使用 brew install chromedriver 给我带来了什么是:
    Selenium::WebDriver::Error::WebDriverError:
    unable to connect to chromedriver 127.0.0.1:9515

    所以似乎有些不对劲......它似乎不知道如何连接 brew chromedriver 版本......但是大多数教程似乎没有说明使用 brew 版本链接任何东西。

    有任何想法吗? (顺便说一句,我在 Rails 4.1 上运行)

    最佳答案

    由于您使用的是 brew要安装 chromedriver,您需要完全删除 chromedriver-helper以及它安装的所有二进制文件和 stub 。这是因为 bundler在 brew 安装的 chromedriver 版本之前将已安装的二进制文件/ stub 添加到路径中,因此将其隐藏。您可以使用

    bundle exec which chromedriver

    找出运行测试时实际使用的 chromedriver。如果不是 brew安装的(通常是/usr/local/bin/chromedriver)然后继续删除它们直到它是。

    关于ruby-on-rails - 让 Headless Chrome 与 Capybara 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45065836/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com