Как использовать посещение капибары без префикса сессии. получение неопределенного метода "посещение" для main: Object (NoMethodError) - PullRequest
0 голосов
/ 06 ноября 2019

Написание отдельного куска кода, который я могу использовать

session.visit('/forms')

, но как я могу использовать

visit('/forms')

Код:

require 'webdrivers'
require 'rspec'
require 'capybara'
require 'capybara/rspec'
Capybara.configure do |config|
  config.run_server = false
  config.default_driver = :chrome
  config.app_host = 'https://google.com'
end
options = Selenium::WebDriver::Chrome::Options.new(args: ['window-size=1200,1200'])
Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end

session = Capybara::Session.new(:chrome)
session.visit('/forms') # <-- this works :)
visit('/forms')         # <-- but this doesn't :(

Я получаю

undefined method `visit' for main:Object (NoMethodError)

1 Ответ

0 голосов
/ 06 ноября 2019

Один из вариантов - использовать Capybara::DSL, т. Е.

include Capybara::DSL
session = Capybara::Session.new(:chrome)
visit('/forms')

Однако это выдает предупреждение

including Capybara::DSL in the global scope is not recommended!

, но я не знаю, как его обойти.

...