chromedriver-screenshot 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d406031fe2a35cdf70f1cd49da677e18b491d438
4
- data.tar.gz: a0a5f4da3f7325356279c6c1c3d2a8c7fb053c10
3
+ metadata.gz: d669b6828cdf8802b5b771efdec6219512f3cf97
4
+ data.tar.gz: 82bf11763a57cff6a0d8337231393f32b92e4380
5
5
  SHA512:
6
- metadata.gz: cdc81cba3ffc423e2c4751e13c705805d0141168b5ca00b4d430e73db53b6e000f703ab3b093c460d3ae88c71188d1eafa0084915d04522bf33bf2dbdb26d7cd
7
- data.tar.gz: 6dbe8886f64deb0799f11b97a4cf8d791a67655958f7ef112f9c578e467180fcc2ef31478ea1ffbc3a1b7d6916d0b48b99b7a737f663db850307a870c3248580
6
+ metadata.gz: 9036f2eb0d7e3e6e8a7d924521db19ff227eed196439bc2bf9fddc08909b15d13455ee4d5c228c094c0a5848697ab51d461db2d406d1c359ead8d61131452dc8
7
+ data.tar.gz: 6ebc32f50f58a4becd615154836abf3a6f408bb2fa06a459976b9eea589ae4e60187c52755504759707c4d915d043872e9cf02e2704f386f8b35d0c19efa2e77
data/.gitignore CHANGED
@@ -1,3 +1,6 @@
1
+ # stores logs from tests
2
+ build/
3
+
1
4
  *.gem
2
5
  *.rbc
3
6
  /.config
@@ -9,11 +12,6 @@
9
12
  /test/version_tmp/
10
13
  /tmp/
11
14
 
12
- ## Specific to RubyMotion:
13
- .dat*
14
- .repl_history
15
- build/
16
-
17
15
  ## Documentation cache and generated files:
18
16
  /.yardoc/
19
17
  /_yardoc/
@@ -0,0 +1,18 @@
1
+ language: ruby
2
+ dist: trusty
3
+ rvm:
4
+ - 2.2
5
+ cache: bundler
6
+ before_script:
7
+ - export CHROME_BIN=/usr/bin/google-chrome
8
+ - export DISPLAY=:99.0
9
+ - sh -e /etc/init.d/xvfb start
10
+ - sudo apt-get update
11
+ - sudo apt-get install -y libappindicator1 fonts-liberation
12
+ - wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
13
+ - sudo dpkg -i google-chrome*.deb
14
+ - CHROMEDRIVER_VERSION=$(curl -s http://chromedriver.storage.googleapis.com/LATEST_RELEASE)
15
+ - curl -L -O "http://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip"
16
+ - unzip chromedriver_linux64.zip
17
+ - chmod +x chromedriver
18
+ - sudo mv chromedriver /usr/local/bin
@@ -1,3 +1,7 @@
1
+ ## 0.3.0 (December 6, 2016)
2
+
3
+ - Upgraded to Selenium 3.0
4
+
1
5
  ## 0.2.4 (November 3, 2016)
2
6
 
3
7
  - Added suggested default settings for RSpec
data/README.md CHANGED
@@ -1,4 +1,8 @@
1
1
  # chromedriver-screenshot
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/chromedriver-screenshot.svg)](https://rubygems.org/gems/chromedriver-screenshot)
4
+ [![Build Status](https://travis-ci.org/smacgaha/chromedriver-screenshot.png)](https://travis-ci.org/smacgaha/chromedriver-screenshot)
5
+
2
6
  Full page screenshots for Chrome in Selenium WebDriver
3
7
 
4
8
  # Usage
@@ -0,0 +1,8 @@
1
+ require "rspec/core/rake_task"
2
+ require "cucumber/rake/task"
3
+
4
+ desc "Run all rspec and cucumber tests"
5
+ task default: ["spec", "features"]
6
+
7
+ RSpec::Core::RakeTask.new(:spec)
8
+ Cucumber::Rake::Task.new(:features)
@@ -16,7 +16,9 @@ Gem::Specification.new do |s|
16
16
  s.require_paths = ["lib"]
17
17
 
18
18
  s.add_dependency "oily_png", "~> 1.2"
19
- s.add_dependency "selenium-webdriver", "~> 2.0"
19
+ s.add_dependency "selenium-webdriver", "~> 3.0"
20
20
 
21
21
  s.add_development_dependency "rspec", "~> 3.2"
22
+ s.add_development_dependency "cucumber", "~> 2.4.0"
23
+ s.add_development_dependency "rake", "~> 10.5.0"
22
24
  end
@@ -0,0 +1,6 @@
1
+ Feature: Image Page
2
+
3
+ Scenario: Take screenshot of single window page
4
+ Given I am on the single window page
5
+ When I take a screenshot
6
+ Then the screenshot matches the stored single window image
@@ -0,0 +1,17 @@
1
+ Given(/^I am on the single window page$/) do
2
+ filepath = File.join(support_directory, "fixtures", "single_window_image", "test_page.html")
3
+ @browser.get "file://#{filepath}"
4
+ end
5
+
6
+ When(/^I take a screenshot$/) do
7
+ @actual_screenshot_path = File.join(logs_directory, "test_screenshot.png")
8
+ @browser.save_screenshot @actual_screenshot_path
9
+ end
10
+
11
+ Then(/^the screenshot matches the stored single window image$/) do
12
+ expected_screenshot_path = File.join(support_directory, "fixtures", "single_window_image", "expected_screenshot.png")
13
+ expected_screenshot = File.read(expected_screenshot_path)
14
+ actual_screenshot = File.read(@actual_screenshot_path)
15
+
16
+ expect(actual_screenshot).to eql expected_screenshot
17
+ end
@@ -0,0 +1,4 @@
1
+ require "selenium-webdriver"
2
+ require "chromedriver-screenshot"
3
+
4
+ ChromedriverScreenshot.take_full_screenshots = true
@@ -0,0 +1,8 @@
1
+ <html>
2
+ <body>
3
+
4
+ <h2>Single Window Image Page</h2>
5
+ <img src="smiley_face.png" alt="Smiley Face">
6
+
7
+ </body>
8
+ </html>
@@ -0,0 +1,12 @@
1
+ browser = Selenium::WebDriver.for :chrome
2
+
3
+ Before do
4
+ @browser = browser
5
+
6
+ # ensure that build/cucumber exists
7
+ FileUtils.mkdir_p logs_directory
8
+ end
9
+
10
+ at_exit do
11
+ browser.close
12
+ end
@@ -0,0 +1,11 @@
1
+ module StepHelpers
2
+ def support_directory
3
+ File.dirname(__FILE__)
4
+ end
5
+
6
+ def logs_directory
7
+ File.join(support_directory, "..", "..", "build", "cucumber")
8
+ end
9
+ end
10
+
11
+ World(StepHelpers)
@@ -21,8 +21,8 @@ module Selenium
21
21
  module WebDriver
22
22
  module Remote
23
23
  class Bridge
24
- alias_method :window_screenshot, :getScreenshot
25
- def getScreenshot
24
+ alias_method :window_screenshot, :screenshot
25
+ def screenshot
26
26
  if browser == :chrome && ChromedriverScreenshot.take_full_screenshots
27
27
  ChromedriverScreenshot::Platforms.create_platform(self)
28
28
 
@@ -9,27 +9,27 @@ module ChromedriverScreenshot
9
9
  end
10
10
 
11
11
  def page_width
12
- @page_width ||= @bridge.executeScript("return document.body.scrollWidth")
12
+ @page_width ||= execute_script("return document.body.scrollWidth")
13
13
  end
14
14
 
15
15
  def page_height
16
- @page_height ||= @bridge.executeScript("return document.body.scrollHeight")
16
+ @page_height ||= execute_script("return document.body.scrollHeight")
17
17
  end
18
18
 
19
19
  def window_width
20
- @window_width ||= @bridge.executeScript("return document.body.clientWidth")
20
+ @window_width ||= execute_script("return document.documentElement.clientWidth")
21
21
  end
22
22
 
23
23
  def window_height
24
- @window_height ||= @bridge.executeScript("return document.body.clientHeight")
24
+ @window_height ||= execute_script("return document.documentElement.clientHeight")
25
25
  end
26
26
 
27
27
  def window_x
28
- @bridge.executeScript("return window.scrollX")
28
+ execute_script("return window.scrollX")
29
29
  end
30
30
 
31
31
  def window_y
32
- @bridge.executeScript("return window.scrollY")
32
+ execute_script("return window.scrollY")
33
33
  end
34
34
 
35
35
  def screenshot
@@ -37,7 +37,7 @@ module ChromedriverScreenshot
37
37
  end
38
38
 
39
39
  def scroll_to(x, y)
40
- @bridge.executeScript("window.scrollTo(#{x}, #{y})")
40
+ execute_script("window.scrollTo(#{x}, #{y})")
41
41
  sleep 1 # don't know why this is necessary
42
42
  end
43
43
 
@@ -46,5 +46,9 @@ module ChromedriverScreenshot
46
46
  def initialize(bridge)
47
47
  @bridge = bridge
48
48
  end
49
+
50
+ def execute_script(script)
51
+ @bridge.execute_script(script)
52
+ end
49
53
  end
50
54
  end
@@ -1,3 +1,3 @@
1
1
  module ChromedriverScreenshot
2
- VERSION = "0.2.4"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chromedriver-screenshot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean MacGahan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-03 00:00:00.000000000 Z
11
+ date: 2016-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oily_png
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.0'
33
+ version: '3.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.0'
40
+ version: '3.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: cucumber
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 2.4.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 2.4.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 10.5.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 10.5.0
55
83
  description: Full-page screenshots for Chrome in Selenium WebDriver
56
84
  email: smacgaha@gmail.com
57
85
  executables: []
@@ -60,11 +88,21 @@ extra_rdoc_files: []
60
88
  files:
61
89
  - ".gitignore"
62
90
  - ".rspec"
91
+ - ".travis.yml"
63
92
  - CHANGELOG.md
64
93
  - Gemfile
65
94
  - LICENSE
66
95
  - README.md
96
+ - Rakefile
67
97
  - chromedriver-screenshot.gemspec
98
+ - features/image_page.feature
99
+ - features/step_definitions/image_page_steps.rb
100
+ - features/support/env.rb
101
+ - features/support/fixtures/single_window_image/expected_screenshot.png
102
+ - features/support/fixtures/single_window_image/smiley_face.png
103
+ - features/support/fixtures/single_window_image/test_page.html
104
+ - features/support/hooks.rb
105
+ - features/support/step_helpers.rb
68
106
  - lib/chromedriver-screenshot.rb
69
107
  - lib/chromedriver-screenshot/page.rb
70
108
  - lib/chromedriver-screenshot/platforms.rb