capybara-screenshot 0.3.22 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rspec +1 -1
- data/.travis.yml +9 -0
- data/Appraisals +31 -0
- data/CHANGELOG.md +16 -0
- data/Gemfile +1 -0
- data/README.md +23 -17
- data/Rakefile +9 -1
- data/capybara-screenshot.gemspec +7 -1
- data/gemfiles/cucumber.1.2.gemfile +9 -0
- data/gemfiles/cucumber.1.2.gemfile.lock +99 -0
- data/gemfiles/cucumber.1.3.0.gemfile +9 -0
- data/gemfiles/cucumber.1.3.0.gemfile.lock +100 -0
- data/gemfiles/latest.gemfile +8 -0
- data/gemfiles/latest.gemfile.lock +102 -0
- data/gemfiles/rspec.2.14.gemfile +9 -0
- data/gemfiles/rspec.2.14.gemfile.lock +98 -0
- data/gemfiles/rspec.2.99.gemfile +9 -0
- data/gemfiles/rspec.2.99.gemfile.lock +98 -0
- data/gemfiles/rspec.3.0.gemfile +9 -0
- data/gemfiles/rspec.3.0.gemfile.lock +102 -0
- data/gemfiles/spinach.0.7.gemfile +9 -0
- data/gemfiles/spinach.0.7.gemfile.lock +100 -0
- data/gemfiles/spinach.0.8.0.gemfile +9 -0
- data/gemfiles/spinach.0.8.0.gemfile.lock +100 -0
- data/lib/capybara-screenshot.rb +5 -0
- data/lib/capybara-screenshot/capybara.rb +12 -0
- data/lib/capybara-screenshot/cucumber.rb +18 -12
- data/lib/capybara-screenshot/minitest.rb +15 -16
- data/lib/capybara-screenshot/rspec.rb +19 -11
- data/lib/capybara-screenshot/rspec/text_reporter.rb +21 -3
- data/lib/capybara-screenshot/spinach.rb +22 -6
- data/lib/capybara-screenshot/testunit.rb +25 -7
- data/lib/capybara-screenshot/version.rb +1 -1
- data/spec/cucumber/cucumber_spec.rb +64 -0
- data/spec/cucumber/step_definitions/step_definitions.rb +18 -0
- data/spec/cucumber/support/env.rb +17 -0
- data/spec/feature/minitest_spec.rb +90 -0
- data/spec/feature/testunit_spec.rb +71 -0
- data/spec/rspec/rspec_spec.rb +101 -0
- data/spec/spec_helper.rb +9 -1
- data/spec/spinach/spinach_spec.rb +53 -0
- data/spec/spinach/support/spinach_failure.rb +41 -0
- data/spec/support/common_setup.rb +28 -0
- data/spec/support/html_reporter_context.rb +1 -1
- data/spec/support/test_app.rb +13 -0
- data/spec/{rspec → unit}/base_reporter_spec.rb +2 -2
- data/spec/{rspec_spec.rb → unit/capybara-screenshot_rspec_spec.rb} +15 -10
- data/spec/{capybara-screenshot_spec.rb → unit/capybara-screenshot_spec.rb} +8 -8
- data/spec/unit/capybara_spec.rb +50 -0
- data/spec/{rspec → unit/rspec_reporters}/html_embed_reporter_spec.rb +2 -2
- data/spec/{rspec → unit/rspec_reporters}/html_link_reporter_spec.rb +2 -2
- data/spec/unit/rspec_reporters/text_reporter_spec.rb +96 -0
- data/spec/{rspec → unit/rspec_reporters}/textmate_link_reporter_spec.rb +5 -3
- data/spec/unit/saver_spec.rb +269 -0
- metadata +161 -41
- data/spec/capybara-screenshot/capybara_spec.rb +0 -18
- data/spec/capybara-screenshot/saver_spec.rb +0 -269
- data/spec/rspec/text_reporter_spec.rb +0 -76
@@ -0,0 +1,100 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ../
|
3
|
+
specs:
|
4
|
+
capybara-screenshot (1.0.0)
|
5
|
+
capybara (>= 1.0, < 3)
|
6
|
+
colored
|
7
|
+
launchy
|
8
|
+
|
9
|
+
GEM
|
10
|
+
remote: http://rubygems.org/
|
11
|
+
specs:
|
12
|
+
addressable (2.3.6)
|
13
|
+
appraisal (1.0.2)
|
14
|
+
bundler
|
15
|
+
rake
|
16
|
+
thor (>= 0.14.0)
|
17
|
+
aruba (0.6.1)
|
18
|
+
childprocess (>= 0.3.6)
|
19
|
+
cucumber (>= 1.1.1)
|
20
|
+
rspec-expectations (>= 2.7.0)
|
21
|
+
builder (3.2.2)
|
22
|
+
capybara (2.4.1)
|
23
|
+
mime-types (>= 1.16)
|
24
|
+
nokogiri (>= 1.3.3)
|
25
|
+
rack (>= 1.0.0)
|
26
|
+
rack-test (>= 0.5.4)
|
27
|
+
xpath (~> 2.0)
|
28
|
+
childprocess (0.5.3)
|
29
|
+
ffi (~> 1.0, >= 1.0.11)
|
30
|
+
colored (1.2)
|
31
|
+
colorize (0.5.8)
|
32
|
+
cucumber (1.3.17)
|
33
|
+
builder (>= 2.1.2)
|
34
|
+
diff-lcs (>= 1.1.3)
|
35
|
+
gherkin (~> 2.12)
|
36
|
+
multi_json (>= 1.7.5, < 2.0)
|
37
|
+
multi_test (>= 0.1.1)
|
38
|
+
diff-lcs (1.2.5)
|
39
|
+
ffi (1.9.3)
|
40
|
+
gherkin (2.12.2)
|
41
|
+
multi_json (~> 1.3)
|
42
|
+
gherkin-ruby (0.2.1)
|
43
|
+
launchy (2.4.2)
|
44
|
+
addressable (~> 2.3)
|
45
|
+
mime-types (2.3)
|
46
|
+
mini_portile (0.6.0)
|
47
|
+
minitest (5.4.1)
|
48
|
+
multi_json (1.10.1)
|
49
|
+
multi_test (0.1.1)
|
50
|
+
nokogiri (1.6.3.1)
|
51
|
+
mini_portile (= 0.6.0)
|
52
|
+
power_assert (0.1.3)
|
53
|
+
rack (1.5.2)
|
54
|
+
rack-protection (1.5.3)
|
55
|
+
rack
|
56
|
+
rack-test (0.6.2)
|
57
|
+
rack (>= 1.0)
|
58
|
+
rake (10.3.2)
|
59
|
+
rspec (3.1.0)
|
60
|
+
rspec-core (~> 3.1.0)
|
61
|
+
rspec-expectations (~> 3.1.0)
|
62
|
+
rspec-mocks (~> 3.1.0)
|
63
|
+
rspec-core (3.1.3)
|
64
|
+
rspec-support (~> 3.1.0)
|
65
|
+
rspec-expectations (3.1.1)
|
66
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
67
|
+
rspec-support (~> 3.1.0)
|
68
|
+
rspec-mocks (3.1.0)
|
69
|
+
rspec-support (~> 3.1.0)
|
70
|
+
rspec-support (3.1.0)
|
71
|
+
sinatra (1.4.5)
|
72
|
+
rack (~> 1.4)
|
73
|
+
rack-protection (~> 1.4)
|
74
|
+
tilt (~> 1.3, >= 1.3.4)
|
75
|
+
spinach (0.8.0)
|
76
|
+
colorize (= 0.5.8)
|
77
|
+
gherkin-ruby (~> 0.2.1)
|
78
|
+
test-unit (3.0.1)
|
79
|
+
power_assert
|
80
|
+
thor (0.19.1)
|
81
|
+
tilt (1.4.1)
|
82
|
+
timecop (0.7.1)
|
83
|
+
xpath (2.0.0)
|
84
|
+
nokogiri (~> 1.3)
|
85
|
+
|
86
|
+
PLATFORMS
|
87
|
+
ruby
|
88
|
+
|
89
|
+
DEPENDENCIES
|
90
|
+
appraisal
|
91
|
+
aruba
|
92
|
+
capybara-screenshot!
|
93
|
+
cucumber
|
94
|
+
minitest
|
95
|
+
rake
|
96
|
+
rspec
|
97
|
+
sinatra
|
98
|
+
spinach (= 0.8.0)
|
99
|
+
test-unit
|
100
|
+
timecop
|
data/lib/capybara-screenshot.rb
CHANGED
@@ -6,6 +6,7 @@ module Capybara
|
|
6
6
|
attr_accessor :filename_prefix_formatters
|
7
7
|
attr_accessor :append_timestamp
|
8
8
|
attr_accessor :webkit_options
|
9
|
+
attr_writer :final_session_name
|
9
10
|
end
|
10
11
|
|
11
12
|
self.autosave_on_failure = true
|
@@ -69,6 +70,10 @@ module Capybara
|
|
69
70
|
def self.register_filename_prefix_formatter(test_type, &block)
|
70
71
|
self.filename_prefix_formatters[test_type] = block
|
71
72
|
end
|
73
|
+
|
74
|
+
def self.final_session_name
|
75
|
+
@final_session_name || Capybara.session_name || :default
|
76
|
+
end
|
72
77
|
end
|
73
78
|
end
|
74
79
|
|
@@ -10,5 +10,17 @@ module Capybara
|
|
10
10
|
def screenshot_and_open_image
|
11
11
|
Capybara::Screenshot.screenshot_and_open_image
|
12
12
|
end
|
13
|
+
|
14
|
+
def using_session_with_screenshot(name)
|
15
|
+
using_session_without_screenshot(name) do
|
16
|
+
original_session_name = Capybara.session_name
|
17
|
+
Capybara::Screenshot.final_session_name = name
|
18
|
+
yield
|
19
|
+
Capybara::Screenshot.final_session_name = original_session_name
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
alias_method :using_session_without_screenshot, :using_session
|
24
|
+
alias_method :using_session, :using_session_with_screenshot
|
13
25
|
end
|
14
26
|
end
|
@@ -1,19 +1,25 @@
|
|
1
|
+
Before do |scenario|
|
2
|
+
Capybara::Screenshot.final_session_name = nil
|
3
|
+
end
|
4
|
+
|
1
5
|
After do |scenario|
|
2
6
|
if Capybara::Screenshot.autosave_on_failure && scenario.failed?
|
3
|
-
|
7
|
+
Capybara.using_session(Capybara::Screenshot.final_session_name) do
|
8
|
+
filename_prefix = Capybara::Screenshot.filename_prefix_for(:cucumber, scenario)
|
4
9
|
|
5
|
-
|
6
|
-
|
7
|
-
|
10
|
+
saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
|
11
|
+
saver.save
|
12
|
+
saver.output_screenshot_path
|
8
13
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
# Trying to embed the screenshot into our output."
|
15
|
+
if File.exist?(saver.screenshot_path)
|
16
|
+
require "base64"
|
17
|
+
#encode the image into it's base64 representation
|
18
|
+
image = open(saver.screenshot_path, 'rb') {|io|io.read}
|
19
|
+
encoded_img = Base64.encode64(image)
|
20
|
+
#this will embed the image in the HTML report, embed() is defined in cucumber
|
21
|
+
embed("data:image/png;base64,#{encoded_img}", 'image/png', "Screenshot of the error")
|
22
|
+
end
|
17
23
|
end
|
18
24
|
end
|
19
25
|
end
|
@@ -1,25 +1,24 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
end
|
6
|
-
|
7
|
-
unless method.nil?
|
8
|
-
begin
|
9
|
-
ActionDispatch::IntegrationTest.send method do |context|
|
10
|
-
# by adding the argument context, MiniTest passes the context of the test
|
11
|
-
# which has an instance variable @passed indicating success / failure
|
12
|
-
failed = !context.passed?
|
1
|
+
module Capybara::Screenshot::MiniTestPlugin
|
2
|
+
def before_setup
|
3
|
+
super
|
4
|
+
Capybara::Screenshot.final_session_name = nil
|
5
|
+
end
|
13
6
|
|
14
|
-
|
15
|
-
|
7
|
+
def after_teardown
|
8
|
+
super
|
9
|
+
if self.class.ancestors.map(&:to_s).include?('ActionDispatch::IntegrationTest') &&
|
10
|
+
Capybara::Screenshot.autosave_on_failure && !passed?
|
11
|
+
Capybara.using_session(Capybara::Screenshot.final_session_name) do
|
12
|
+
filename_prefix = Capybara::Screenshot.filename_prefix_for(:minitest, self)
|
16
13
|
|
17
14
|
saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
|
18
15
|
saver.save
|
19
16
|
saver.output_screenshot_path
|
20
17
|
end
|
21
18
|
end
|
22
|
-
rescue NoMethodError
|
23
|
-
# do nothing, teardown for minitest not available
|
24
19
|
end
|
25
20
|
end
|
21
|
+
|
22
|
+
class MiniTest::Unit::TestCase
|
23
|
+
include Capybara::Screenshot::MiniTestPlugin
|
24
|
+
end
|
@@ -34,10 +34,11 @@ module Capybara
|
|
34
34
|
# gets injected into the appropriate formatter.
|
35
35
|
|
36
36
|
REPORTERS = {
|
37
|
-
"RSpec::Core::Formatters::ProgressFormatter"
|
38
|
-
"RSpec::Core::Formatters::
|
39
|
-
"RSpec::Core::Formatters::
|
40
|
-
"RSpec::
|
37
|
+
"RSpec::Core::Formatters::ProgressFormatter" => Capybara::Screenshot::RSpec::TextReporter,
|
38
|
+
"RSpec::Core::Formatters::DocumentationFormatter" => Capybara::Screenshot::RSpec::TextReporter,
|
39
|
+
"RSpec::Core::Formatters::HtmlFormatter" => Capybara::Screenshot::RSpec::HtmlLinkReporter,
|
40
|
+
"RSpec::Core::Formatters::TextMateFormatter" => Capybara::Screenshot::RSpec::TextMateLinkReporter, # RSpec 2
|
41
|
+
"RSpec::Mate::Formatters::TextMateFormatter" => Capybara::Screenshot::RSpec::TextMateLinkReporter # RSpec 3
|
41
42
|
}
|
42
43
|
|
43
44
|
class << self
|
@@ -45,14 +46,17 @@ module Capybara
|
|
45
46
|
|
46
47
|
def after_failed_example(example)
|
47
48
|
if Capybara.page.respond_to?(:save_page) # Capybara DSL method has been included for a feature we can snapshot
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
saver.save
|
49
|
+
Capybara.using_session(Capybara::Screenshot.final_session_name) do
|
50
|
+
if Capybara.page.current_url != '' && Capybara::Screenshot.autosave_on_failure && example.exception
|
51
|
+
filename_prefix = Capybara::Screenshot.filename_prefix_for(:rspec, example)
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
|
53
|
+
saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
|
54
|
+
saver.save
|
55
|
+
|
56
|
+
example.metadata[:screenshot] = {}
|
57
|
+
example.metadata[:screenshot][:html] = saver.html_path if saver.html_saved?
|
58
|
+
example.metadata[:screenshot][:image] = saver.screenshot_path if saver.screenshot_saved?
|
59
|
+
end
|
56
60
|
end
|
57
61
|
end
|
58
62
|
end
|
@@ -64,6 +68,10 @@ module Capybara
|
|
64
68
|
end
|
65
69
|
|
66
70
|
RSpec.configure do |config|
|
71
|
+
config.before do
|
72
|
+
Capybara::Screenshot.final_session_name = nil
|
73
|
+
end
|
74
|
+
|
67
75
|
config.after do |example_from_block_arg|
|
68
76
|
# RSpec 3 no longer defines `example`, but passes the example as block argument instead
|
69
77
|
example = config.respond_to?(:expose_current_running_example_as) ? example_from_block_arg : self.example
|
@@ -5,15 +5,33 @@ module Capybara
|
|
5
5
|
module RSpec
|
6
6
|
module TextReporter
|
7
7
|
extend BaseReporter
|
8
|
-
|
8
|
+
|
9
|
+
if ::RSpec::Version::STRING.to_i <= 2
|
10
|
+
enhance_with_screenshot :dump_failure_info
|
11
|
+
else
|
12
|
+
enhance_with_screenshot :example_failed
|
13
|
+
end
|
9
14
|
|
10
15
|
def dump_failure_info_with_screenshot(example)
|
11
|
-
dump_failure_info_without_screenshot
|
12
|
-
|
16
|
+
dump_failure_info_without_screenshot example
|
17
|
+
output_screenshot_info(example)
|
18
|
+
end
|
13
19
|
|
20
|
+
def example_failed_with_screenshot(notification)
|
21
|
+
example_failed_without_screenshot notification
|
22
|
+
output_screenshot_info(notification.example)
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
def output_screenshot_info(example)
|
27
|
+
return unless (screenshot = example.metadata[:screenshot])
|
14
28
|
output.puts(long_padding + "HTML screenshot: #{screenshot[:html]}".yellow) if screenshot[:html]
|
15
29
|
output.puts(long_padding + "Image screenshot: #{screenshot[:image]}".yellow) if screenshot[:image]
|
16
30
|
end
|
31
|
+
|
32
|
+
def long_padding
|
33
|
+
" "
|
34
|
+
end
|
17
35
|
end
|
18
36
|
end
|
19
37
|
end
|
@@ -1,8 +1,24 @@
|
|
1
|
-
Spinach.hooks.
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
Spinach.hooks.before_scenario do |scenario|
|
2
|
+
Capybara::Screenshot.final_session_name = nil
|
3
|
+
end
|
4
|
+
|
5
|
+
module Capybara::Screenshot::Spinach
|
6
|
+
def self.fail_with_screenshot(step_data, exception, location, step_definitions)
|
7
|
+
if Capybara::Screenshot.autosave_on_failure
|
8
|
+
Capybara.using_session(Capybara::Screenshot.final_session_name) do
|
9
|
+
filename_prefix = Capybara::Screenshot.filename_prefix_for(:spinach, step_data)
|
10
|
+
saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
|
11
|
+
saver.save
|
12
|
+
saver.output_screenshot_path
|
13
|
+
end
|
14
|
+
end
|
7
15
|
end
|
8
16
|
end
|
17
|
+
|
18
|
+
Spinach.hooks.on_failed_step do |*args|
|
19
|
+
Capybara::Screenshot::Spinach.fail_with_screenshot(*args)
|
20
|
+
end
|
21
|
+
|
22
|
+
Spinach.hooks.on_error_step do |*args|
|
23
|
+
Capybara::Screenshot::Spinach.fail_with_screenshot(*args)
|
24
|
+
end
|
@@ -1,21 +1,39 @@
|
|
1
1
|
require 'test/unit/testresult'
|
2
|
-
Test::Unit::TestResult.class_eval do
|
3
2
|
|
3
|
+
module Capybara::Screenshot
|
4
|
+
class << self
|
5
|
+
attr_accessor :testunit_paths
|
6
|
+
end
|
7
|
+
|
8
|
+
self.testunit_paths = [%r{test/integration}]
|
9
|
+
end
|
10
|
+
|
11
|
+
Test::Unit::TestCase.class_eval do
|
12
|
+
setup do
|
13
|
+
Capybara::Screenshot.final_session_name = nil
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
Test::Unit::TestResult.class_eval do
|
4
18
|
private
|
5
19
|
|
6
20
|
def notify_fault_with_screenshot(fault, *args)
|
7
21
|
notify_fault_without_screenshot fault, *args
|
8
|
-
|
22
|
+
is_integration_test = fault.location.any? do |location|
|
23
|
+
Capybara::Screenshot.testunit_paths.any? { |path| location.match(path) }
|
24
|
+
end
|
25
|
+
if is_integration_test
|
9
26
|
if Capybara::Screenshot.autosave_on_failure
|
10
|
-
|
27
|
+
Capybara.using_session(Capybara::Screenshot.final_session_name) do
|
28
|
+
filename_prefix = Capybara::Screenshot.filename_prefix_for(:testunit, fault)
|
11
29
|
|
12
|
-
|
13
|
-
|
14
|
-
|
30
|
+
saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
|
31
|
+
saver.save
|
32
|
+
saver.output_screenshot_path
|
33
|
+
end
|
15
34
|
end
|
16
35
|
end
|
17
36
|
end
|
18
37
|
alias notify_fault_without_screenshot notify_fault
|
19
38
|
alias notify_fault notify_fault_with_screenshot
|
20
|
-
|
21
39
|
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "gherkin"
|
3
|
+
|
4
|
+
# If Gherkin Parser is not available, then we are using an old Spinach Gemset
|
5
|
+
if defined?(Gherkin::Parser::Parser)
|
6
|
+
describe "Using Capybara::Screenshot with Cucumber" do
|
7
|
+
include Aruba::Api
|
8
|
+
include CommonSetup
|
9
|
+
|
10
|
+
before do
|
11
|
+
clean_current_dir
|
12
|
+
end
|
13
|
+
|
14
|
+
def run_failing_case(failure_message, code)
|
15
|
+
write_file('features/support/env.rb', <<-RUBY)
|
16
|
+
#{ensure_load_paths_valid}
|
17
|
+
require 'cucumber/support/env.rb'
|
18
|
+
#{setup_test_app}
|
19
|
+
RUBY
|
20
|
+
|
21
|
+
write_file('features/step_definitions/step_definitions.rb', <<-RUBY)
|
22
|
+
%w(lib spec).each do |include_folder|
|
23
|
+
$LOAD_PATH.unshift(File.join('#{gem_root}', include_folder))
|
24
|
+
end
|
25
|
+
require 'cucumber/step_definitions/step_definitions.rb'
|
26
|
+
RUBY
|
27
|
+
|
28
|
+
write_file('features/cucumber.feature', code)
|
29
|
+
cmd = 'bundle exec cucumber'
|
30
|
+
run_simple cmd, false
|
31
|
+
expect(output_from(cmd)).to match failure_message
|
32
|
+
end
|
33
|
+
|
34
|
+
it "saves a screenshot on failure" do
|
35
|
+
run_failing_case(%q{Unable to find link or button "you'll never find me"}, <<-CUCUMBER)
|
36
|
+
Feature: Failure
|
37
|
+
Scenario: Failure
|
38
|
+
Given I visit "/"
|
39
|
+
And I click on a missing link
|
40
|
+
CUCUMBER
|
41
|
+
check_file_content('tmp/my_screenshot.html', 'This is the root page', true)
|
42
|
+
end
|
43
|
+
|
44
|
+
it "saves a screenshot on an error" do
|
45
|
+
run_failing_case(%q{you can't handle me}, <<-CUCUMBER)
|
46
|
+
Feature: Failure
|
47
|
+
Scenario: Failure
|
48
|
+
Given I visit "/"
|
49
|
+
And I trigger an unhandled exception
|
50
|
+
CUCUMBER
|
51
|
+
check_file_content('tmp/my_screenshot.html', 'This is the root page', true)
|
52
|
+
end
|
53
|
+
|
54
|
+
it "saves a screenshot for the correct session for failures using_session" do
|
55
|
+
run_failing_case(%q{Unable to find link or button "you'll never find me"}, <<-CUCUMBER)
|
56
|
+
Feature: Failure
|
57
|
+
Scenario: Failure in different session
|
58
|
+
Given I visit "/"
|
59
|
+
And I click on a missing link on a different page in a different session
|
60
|
+
CUCUMBER
|
61
|
+
check_file_content('tmp/my_screenshot.html', 'This is a different page', true)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|