Skip to content

Commit 397b51c

Browse files
authored
Merge pull request #18 from dbalatero/fix-repo-issues
Fix repo issues
2 parents a27a251 + 236f8c9 commit 397b51c

File tree

8 files changed

+74
-31
lines changed

8 files changed

+74
-31
lines changed

.ruby-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.5.1
1+
2.6.5

.travis.yml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
sudo: false
22
language: ruby
33
addons:
4-
apt:
5-
sources:
6-
- google-chrome
7-
packages:
8-
- google-chrome-stable
4+
chrome: stable
95
rvm:
10-
- 2.4.1
6+
- 2.6.5
117
before_install: gem install bundler -v 1.16.0

Gemfile.lock

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ GEM
1010
specs:
1111
addressable (2.5.2)
1212
public_suffix (>= 2.0.2, < 4.0)
13-
archive-zip (0.11.0)
14-
io-like (~> 0.3.0)
1513
capybara (2.18.0)
1614
addressable
1715
mini_mime (>= 0.1.3)
@@ -21,28 +19,24 @@ GEM
2119
xpath (>= 2.0, < 4.0)
2220
childprocess (0.8.0)
2321
ffi (~> 1.0, >= 1.0.11)
24-
chromedriver-helper (1.2.0)
25-
archive-zip (~> 0.10)
26-
nokogiri (~> 1.8)
2722
coderay (1.1.2)
2823
colorize (0.8.1)
2924
diff-lcs (1.3)
3025
ffi (1.9.21)
3126
gem-release (2.0.1)
32-
io-like (0.3.0)
3327
method_source (0.9.0)
3428
mini_mime (1.0.0)
35-
mini_portile2 (2.3.0)
36-
nokogiri (1.8.2)
37-
mini_portile2 (~> 2.3.0)
29+
mini_portile2 (2.4.0)
30+
nokogiri (1.10.8)
31+
mini_portile2 (~> 2.4.0)
3832
pry (0.11.3)
3933
coderay (~> 1.1.0)
4034
method_source (~> 0.9.0)
4135
public_suffix (3.0.2)
42-
rack (2.0.4)
36+
rack (2.0.8)
4337
rack-test (1.0.0)
4438
rack (>= 1.0, < 3)
45-
rake (10.5.0)
39+
rake (13.0.1)
4640
rspec (3.7.0)
4741
rspec-core (~> 3.7.0)
4842
rspec-expectations (~> 3.7.0)
@@ -62,6 +56,10 @@ GEM
6256
rubyzip (~> 1.2)
6357
stub_server (0.2.1)
6458
rack
59+
webdrivers (4.1.2)
60+
nokogiri (~> 1.6)
61+
rubyzip (~> 1.0)
62+
selenium-webdriver (>= 3.0, < 4.0)
6563
xpath (3.0.0)
6664
nokogiri (~> 1.8)
6765

@@ -71,13 +69,13 @@ PLATFORMS
7169
DEPENDENCIES
7270
bundler (~> 1.16)
7371
capybara-chromedriver-logger!
74-
chromedriver-helper
7572
gem-release
7673
pry
77-
rake (~> 10.0)
74+
rake (~> 13.0)
7875
rspec (~> 3.0)
7976
selenium-webdriver
8077
stub_server
78+
webdrivers (~> 4.0)
8179

8280
BUNDLED WITH
83-
1.16.2
81+
1.17.3

README.md

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,12 @@ You'll want to modify your `spec_helper.rb` file to configure Capybara correctly
3636

3737
```ruby
3838
Capybara.register_driver(:chrome) do |app|
39-
# Turn on browser logs
40-
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
41-
loggingPrefs: {
42-
browser: 'ALL'
39+
# option 1:
40+
# This wraps Selenium::WebDriver::Remote::Capabilities.chrome() with the
41+
# correct settings for logging.
42+
capabilities = Capybara::Chromedriver::Logger.build_capabilities(
43+
chromeOptions: {
44+
args: %w[headless]
4345
}
4446
)
4547

@@ -65,6 +67,29 @@ RSpec.configure do |config|
6567
end
6668
```
6769

70+
If you don't want to use the capability wrapper above for any reason, you can
71+
still manually configure things:
72+
73+
```ruby
74+
# option 2: manual setup
75+
# Turn on browser logs
76+
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
77+
chromeOptions: {
78+
args: %w[headless],
79+
# required for Chrome 75+
80+
w3c: false
81+
},
82+
# For up to Chrome 74
83+
loggingPrefs: {
84+
browser: 'ALL'
85+
}
86+
# for Chrome 75+
87+
"goog:loggingPrefs" => {
88+
browser: 'ALL'
89+
}
90+
)
91+
```
92+
6893
## Configuration
6994

7095
Here are examples of the supported configuration options:

capybara-chromedriver-logger.gemspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ Gem::Specification.new do |spec|
3333
spec.add_dependency "colorize"
3434

3535
spec.add_development_dependency "bundler", "~> 1.16"
36-
spec.add_development_dependency "chromedriver-helper"
3736
spec.add_development_dependency "gem-release"
3837
spec.add_development_dependency "pry"
39-
spec.add_development_dependency "rake", "~> 10.0"
38+
spec.add_development_dependency "rake", "~> 13.0"
4039
spec.add_development_dependency "rspec", "~> 3.0"
4140
spec.add_development_dependency "selenium-webdriver"
4241
spec.add_development_dependency "stub_server"
42+
spec.add_development_dependency 'webdrivers', '~> 4.0'
4343
end

lib/capybara/chromedriver/logger.rb

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,31 @@ module Chromedriver
1212
module Logger
1313
extend self
1414

15+
def build_capabilities(loggingPrefs: { browser: 'ALL' }, **options)
16+
options[:chromeOptions] ||= {}
17+
18+
if options[:chromeOptions][:w3c]
19+
warn "warning: Setting chromeOptions.w3c to true makes it not "\
20+
"possible to get console.log messages from Chrome.\n\n"\
21+
"Please see: https://github.com/SeleniumHQ/selenium/issues/7270"
22+
else
23+
options[:chromeOptions][:w3c] = false
24+
end
25+
26+
if loggingPrefs[:browser] != 'ALL'
27+
warn "warning: loggingPrefs needs to contain { browser: 'ALL' } "\
28+
"when using Logger#build_capabilities"
29+
end
30+
31+
options[:loggingPrefs] = loggingPrefs
32+
33+
# Support Chrome 75+
34+
# see: https://github.com/SeleniumHQ/selenium/issues/7342
35+
options["goog:loggingPrefs"] = loggingPrefs
36+
37+
::Selenium::WebDriver::Remote::Capabilities.chrome(options)
38+
end
39+
1540
def filters
1641
@filters || []
1742
end

spec/spec_helper.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
require "pry"
12
require "bundler/setup"
3+
require "webdrivers/chromedriver"
24
require "capybara/chromedriver/logger"
35

46
Dir.glob("spec/support/**/*.rb") { |f| require_relative "../#{f}" }

spec/support/capybara.rb

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,9 @@
2020
--window-size=1600,1200
2121
]
2222

23-
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
23+
capabilities = Capybara::Chromedriver::Logger.build_capabilities(
2424
chromeOptions: {
2525
args: args
26-
},
27-
loggingPrefs: {
28-
browser: 'ALL'
2926
}
3027
)
3128

0 commit comments

Comments
 (0)