capybara 3.10.0 → 3.10.1
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 +4 -4
- data/History.md +8 -0
- data/README.md +1 -1
- data/lib/capybara/queries/selector_query.rb +0 -1
- data/lib/capybara/selector.rb +1 -1
- data/lib/capybara/selenium/node.rb +3 -1
- data/lib/capybara/spec/session/click_link_or_button_spec.rb +16 -0
- data/lib/capybara/spec/session/has_css_spec.rb +23 -4
- data/lib/capybara/spec/views/form.erb +1 -1
- data/lib/capybara/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab5799591629ab7839ce7bd05f651e7ca3215e300bd1e6622130e01e0431ad86
|
4
|
+
data.tar.gz: b848caed06658e44c604d490eb26b4a5d313a5879c4deb6fc3f8d3ba2b784644
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b74973ebd8ca32addec5f7aeb005ef022d6b2e9e5633203b51ccafa4608378121ad582eed792bd7de44496e2d9b8692a49b648575fe3b8ee399f4ca6515e3b22
|
7
|
+
data.tar.gz: ebb6f2aeb95d168e23d515d6d97e1af702d244c030a39ba7474a2dbd3a6bd954b70e29bacf31e7def0e9f66e5db8e53ae255709751e99431b869d5c2c84b0041
|
data/History.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
# Version 3.10.1
|
2
|
+
Release date: 2018-11-03
|
3
|
+
|
4
|
+
### Fixed
|
5
|
+
|
6
|
+
* Fix `aria-label` and `test_id` matching for `link_or_button` selector type - Issue #2125
|
7
|
+
* Fixed crash in element path creation for matcher failure messages - Issue #2120
|
8
|
+
|
1
9
|
# Version 3.10.0
|
2
10
|
Release date: 2018-10-23
|
3
11
|
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
[](https://dependabot.com/compatibility-score.html?dependency-name=capybara&package-manager=bundler&version-scheme=semver)
|
8
8
|
|
9
9
|
**Note** You are viewing the README for the development version of Capybara. If you are using the current release version
|
10
|
-
you can find the README at https://github.com/teamcapybara/capybara/blob/3.
|
10
|
+
you can find the README at https://github.com/teamcapybara/capybara/blob/3.10_stable/README.md
|
11
11
|
|
12
12
|
|
13
13
|
Capybara helps you test web applications by simulating how a real user would
|
@@ -156,7 +156,6 @@ module Capybara
|
|
156
156
|
|
157
157
|
def matches_node_filters?(node)
|
158
158
|
unapplied_options = options.keys - valid_keys
|
159
|
-
|
160
159
|
node_filters.all? do |filter_name, filter|
|
161
160
|
if filter.matcher?
|
162
161
|
unapplied_options.select { |option_name| filter.handles_option?(option_name) }.all? do |option_name|
|
data/lib/capybara/selector.rb
CHANGED
@@ -178,7 +178,7 @@ end
|
|
178
178
|
Capybara.add_selector(:link_or_button) do
|
179
179
|
label 'link or button'
|
180
180
|
xpath do |locator, **options|
|
181
|
-
self.class.all.values_at(:link, :button).map { |selector| selector.
|
181
|
+
self.class.all.values_at(:link, :button).map { |selector| selector.call(locator, **options, selector_config: @config) }.reduce(:union)
|
182
182
|
end
|
183
183
|
|
184
184
|
node_filter(:disabled, :boolean, default: false, skip_if: :all) { |node, value| node.tag_name == 'a' || !(value ^ node.disabled?) }
|
@@ -181,7 +181,9 @@ class Capybara::Selenium::Node < Capybara::Driver::Node
|
|
181
181
|
when 1
|
182
182
|
'' # index not necessary when only one matching element
|
183
183
|
else
|
184
|
-
|
184
|
+
idx = siblings.index(node)
|
185
|
+
# Element may not be found in the siblings if it has gone away
|
186
|
+
idx.nil? ? '[ERROR]' : "[#{idx + 1}]"
|
185
187
|
end
|
186
188
|
end
|
187
189
|
result.push selector
|
@@ -110,4 +110,20 @@ Capybara::SpecHelper.spec '#click_link_or_button' do
|
|
110
110
|
link = @session.find(:link, 'Blank Anchor')
|
111
111
|
expect(@session.click_link_or_button('Blank Anchor')).to eq link
|
112
112
|
end
|
113
|
+
|
114
|
+
context 'with enable_aria_label' do
|
115
|
+
it 'should click on link' do
|
116
|
+
@session.visit('/with_html')
|
117
|
+
expect do
|
118
|
+
@session.click_link_or_button('Go to simple', enable_aria_label: true)
|
119
|
+
end.not_to raise_error
|
120
|
+
end
|
121
|
+
|
122
|
+
it 'should click on button' do
|
123
|
+
@session.visit('/form')
|
124
|
+
expect do
|
125
|
+
@session.click_link_or_button('Aria button', enable_aria_label: true)
|
126
|
+
end.not_to raise_error
|
127
|
+
end
|
128
|
+
end
|
113
129
|
end
|
@@ -39,10 +39,29 @@ Capybara::SpecHelper.spec '#has_css?' do
|
|
39
39
|
expect(@session).to have_css('h2', id: /2ON/i)
|
40
40
|
end
|
41
41
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
42
|
+
context 'when scoped' do
|
43
|
+
it 'should look in the scope' do
|
44
|
+
@session.within "//p[@id='first']" do
|
45
|
+
expect(@session).to have_css('a#foo')
|
46
|
+
expect(@session).not_to have_css('a#red')
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'should be able to generate an error message if the scope is a sibling' do
|
51
|
+
el = @session.find(:css, '#first')
|
52
|
+
@session.within el.sibling(:css, '#second') do
|
53
|
+
expect {
|
54
|
+
expect(@session).to have_css('a#not_on_page')
|
55
|
+
}.to raise_error /there were no matches/
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should be able to generate an error message if the scope is a sibling from XPath' do
|
60
|
+
el = @session.find(:css, '#first').find(:xpath, './following-sibling::*[1]') do
|
61
|
+
expect {
|
62
|
+
expect(el).to have_css('a#not_on_page')
|
63
|
+
}.to raise_error /there were no matches/
|
64
|
+
end
|
46
65
|
end
|
47
66
|
end
|
48
67
|
|
@@ -434,7 +434,7 @@ New line after and before textarea tag
|
|
434
434
|
</p>
|
435
435
|
|
436
436
|
<p>
|
437
|
-
<input type="button" name="form[fresh]" id="fresh_btn" value="i am fresh"/>
|
437
|
+
<input type="button" aria-label="Aria button" name="form[fresh]" id="fresh_btn" value="i am fresh"/>
|
438
438
|
<input type="submit" name="form[awesome]" id="awe123" title="What an Awesome Button" value="awesome"/>
|
439
439
|
<input type="submit" name="form[crappy]" id="crap321" value="crappy"/>
|
440
440
|
<input type="image" name="form[okay]" id="okay556" title="Okay 556 Image" value="okay" alt="oh hai thar"/>
|
data/lib/capybara/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.10.
|
4
|
+
version: 3.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Walpole
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain:
|
12
12
|
- gem-public_cert.pem
|
13
|
-
date: 2018-
|
13
|
+
date: 2018-11-03 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: addressable
|
@@ -525,7 +525,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
525
525
|
version: '0'
|
526
526
|
requirements: []
|
527
527
|
rubyforge_project:
|
528
|
-
rubygems_version: 2.7.
|
528
|
+
rubygems_version: 2.7.8
|
529
529
|
signing_key:
|
530
530
|
specification_version: 4
|
531
531
|
summary: Capybara aims to simplify the process of integration testing Rack applications,
|