黄瓜水豚红宝石自动化中的无头模式

问题描述 投票:0回答:2

我看到很多类似的问题,但没有一个能帮助我理解。 如何使用 chromedrive、selenium、capybara、ruby 和 cucumber 在无头模式下运行我的 .feature 文件。 这是我的 env.rb: require_relative 'helper.rb'

BROWSER = ENV['BROWSER']

World(Helper)

Capybara.register_driver :selenium do |app|

  if BROWSER.eql?('chrome_headless')

    Capybara::Selenium::Driver.new(app,
        :browser => :chrome,
        :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome(
          'chromeOptions' => {
            'args' => [ "headless", "window-size=1440x768", "disable-gpu"]
          }
        )
      )
    elsif BROWSER.eql?('chrome')
        Capybara::Selenium::Driver.new(app,browser: :chrome)
        
    end
  end

Capybara.configure do |config|
    config.default_driver =:selenium
   Capybara.page.driver.browser.manage.window.resize_to(1440,768)
end

Capybara.default_max_wait_time = 60

这是我的帮手.rb:

 module Helper
 def take picture(file_name, res)
     file_path = "reports/screenshot/"
     dateTime = DateTime.now.to_s
     dateTime.split(':')
     date = dataHora[0..12].to_s+dataHora[14..15].to_s+dataHora[17..21].to_s
     picture = "#{file_path}#{date}#{nome_arquivo}-#{res}.png"
     temp_shot = page.save_screenshot(picture)
     shot = Base64.encode64(File.open(temp_shot, "rb").read)
     attach(shot, 'image/png')
 end
end

这是我的step_definition 文件.rb 只是一个包含水豚元素的普通 rb 文件

 adm = LoginAdmin.new
 admInic = TelaInicialAdmin.new


   varGlobal = YAML.load(File.read('./configuracoesGlobaisTeste.yaml'))
    @nomeOferta = varGlobal["nomeOferta"]
     @nomeProduto = varGlobal["nomeProduto"]

       Dado('que acessei a página da Vivo') do
            acesso.load
             end

   Quando('clicar em Entrar posso digitar minhas credenciais ') do 
        page.driver.browser.navigate.refresh
        sleep 3
        inicio.btnEntrar.click
        inicio.usuario.set @usuario
        inicio.senha.set @senha
        inicio.btnAcessarConta.click
     end

是不是漏掉了什么? 这就是我使用功能文件中的标签在终端上运行自动化的方式:

cucumber -t@criarClienteCompraLojaClone 

此命令使用 GUI 打开浏览器。我希望不打开 GUI。我希望进行无头测试。 我刚刚尝试了 stackoverflow 和 google 中的每个教程。 请任何建议都会有帮助!

ruby cucumber capybara google-chrome-headless
2个回答
1
投票

我的无头工作为此更新 env.rb 文件:

require_relative 'helper.rb'

BROWSER = ENV['BROWSER']


#HEADLESS
World(Helper)

Capybara.register_driver :headless_chrome  do |app|
  Capybara::Selenium::Driver.new(app, browser: :chrome,
    options: Selenium::WebDriver::Chrome::Options.new(args: %w[headless no-sandbox disable-gpu]))
end

Capybara.configure do |config|
config.default_driver =:headless_chrome
#Capybara.page.driver.browser.manage.window.resize_to(1440,768)
end

Capybara.default_max_wait_time = 60

0
投票

我的

env.rb
文件仅包含以下几行水豚配置调整:

Capybara.default_driver = :selenium_chrome_headless
Capybara.javascript_driver = :selenium_chrome_headless
© www.soinside.com 2019 - 2024. All rights reserved.