Используя Apparition с Capybara, browser_logger не производит вывод - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь отойти от Полтергейста / Призрака через использование Явления.

Настройка драйвера работает должным образом, за исключением вывода журналов Chrome.

Это моя конфигурация драйвера:

Capybara.register_driver :apparition do |app|
    options = {
      debug: false,
      headless: true,
      browser_logger: STDOUT,
      timeout: 3,
      ignore_https_errors: true,
      screen_size: [1920, 1080],
      skip_image_loading: false,
      js_errors: false,
      headers: {
        "User-Agent" => "Apparition"
      }
    }
    Capybara::Apparition::Driver.new(app, options)
end

Я ожидал увидеть консоль Chromeвыходные данные смешиваются с данными Capybara, но абсолютно ничего не производится.

Мой синтаксис неверен?

Спасибо, Шон

1 Ответ

0 голосов
/ 18 октября 2019

Если я сделаю, например, console.log("foo") в JavaScript, наши тесты Capybara + Apparition будут выводить это во время выполнения. Так что да, Capybara + Apparition обычно имеет такое поведение.

Попробуйте удалить все эти опции и посмотрите, как вы это делаете.

Вот отдельный пример вывода console.log. Сохраните его как example.rb и запустите с ruby example.rb. (Пример кода в основном из https://github.com/teamcapybara/capybara/issues/2256#issuecomment-542238546.)

require "bundler/inline"

gemfile do
  source "https://rubygems.org"
  gem "capybara"
  gem "puma"
  gem "apparition"
end

require "capybara/apparition"
require "capybara/dsl"

html = DATA.read
app = proc { |env| [200, { "Content-Type" => "text/html" }, [html] ] }

Capybara.register_driver :apparition do |app|
  Capybara::Apparition::Driver.new(app,
  )
end

sess = Capybara::Session.new(:apparition, app)
sess.visit("/")

__END__

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Hello!</title>
    <script>
      console.log("hi");
    </script>
  </head>
  <body>
    <p>Hello world.</p>
  </body>
</html>

В этом примере все равно будет выводиться журнал, даже если я добавлю все параметры, которые вы используете, хотя, возможно, что-то еще происходит.

...