小编You*_*ank的帖子

如何使用无头铬与水豚和硒

Chrome版本:59.0.3071.104

使用Cucumber,Capybara,Selenium实现无头Chrome的自动化测试.

功能/支持/ env.rb

require 'rubygems'
require 'capybara/cucumber'

Capybara.register_driver :selenium_chrome do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome, args: ['headless'])
end

Capybara.default_driver = :selenium_chrome
Run Code Online (Sandbox Code Playgroud)

在进行黄瓜测试时,它说:

警告Selenium [DEPRECATION]:不推荐使用args或:开关.请改用Selenium :: WebDriver :: Chrome :: Options#add_argument.

使用Headless Chrome的水豚和硒的正确方法是什么?谢谢.

编辑1:我尝试使用Ruby-Binding,Capybara工作示例进行以下操作.但它也会产生错误.

require 'rubygems'
require 'capybara/cucumber'
require 'selenium-webdriver'

Capybara.register_driver :selenium_chrome do |app|
  options = Selenium::WebDriver::Chrome::Options.new
  options.add_argument('--headless')
  driver = Selenium::WebDriver.for :chrome, options: options
  Capybara::Selenium::Driver.new(
    app, 
    browser: :chrome, 
    desired_capabilities: driver
  )
end

Capybara.default_driver = :selenium_chrome
Run Code Online (Sandbox Code Playgroud)

错误:

> undefined method `each' for
> #<Selenium::WebDriver::Remote::Capabilities:0xd13baac> (NoMethodError) …
Run Code Online (Sandbox Code Playgroud)

ruby selenium cucumber capybara google-chrome-headless

9
推荐指数
2
解决办法
5506
查看次数

如何在声明性管道Jenkins中选择多个JDK版本

我想在Jenkins声明性管道中为不同的阶段使用不同的JDK版本.在第一阶段,我使用的是Java 8.在第二阶段,我使用的是Java 6.如何在Jenkins的声明性管道中选择多个JDK版本?

  pipeline {
  agent any

  tools {
    jdk 'jdk_1.8.0_151'
    jdk 'jdk_1.6.0_45'
  }

  stages {
    stage('java 8') {
      steps {
        sh 'java -version'
        sh 'javac -version'
      }
    }
    stage('java 6') {
      steps {
        sh 'java -version'
        sh 'javac -version'
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-declarative-pipeline

8
推荐指数
3
解决办法
7761
查看次数