selenium-cucumber 3.1.4 → 3.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/canned_steps.md +9 -0
- data/lib/selenium-cucumber/click_elements_steps.rb +6 -3
- data/lib/selenium-cucumber/methods/click_elements_methods.rb +19 -1
- data/lib/selenium-cucumber/methods/navigate_methods.rb +14 -0
- data/lib/selenium-cucumber/navigation_steps.rb +4 -0
- data/lib/selenium-cucumber/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 541c5f8d41f9c4111d99f41b80955e1ba616b006
|
4
|
+
data.tar.gz: 10db792d4ab59fc1f83fc317170f0f6b69bb0319
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3acdf1d3edb57727c085bd37d4b0b356c897ddc07e0861082884351f2fd54babb4307b4d45f882ff13d00c3b783d916524e0442b38aeed88ef83f04bdf29e9d
|
7
|
+
data.tar.gz: 6b9c6ae877704394938b9bcc725a4600c78ae755fadd3c941ed78be3081576bc584aba3626bd0f21751239f86b3fb8183dc5100b146032482650533fa8dd7288
|
data/doc/canned_steps.md
CHANGED
@@ -29,6 +29,7 @@ To switch between windows use following steps :
|
|
29
29
|
Then I switch to new window
|
30
30
|
Then I switch to previous window
|
31
31
|
Then I switch to window having title "(.*?)"
|
32
|
+
Then I switch to window having url "(.*?)"
|
32
33
|
Then I close new window
|
33
34
|
Then I switch to main window
|
34
35
|
|
@@ -476,6 +477,14 @@ To click on web element use following steps :
|
|
476
477
|
Then I click on element having xpath "(.*?)"
|
477
478
|
Then I click on element having css "(.*?)"
|
478
479
|
|
480
|
+
To click on web element with a particular text use the following steps :
|
481
|
+
|
482
|
+
Then I click on element having id "(.*?)" and text "(.*?)"
|
483
|
+
Then I click on element having name "(.*?)" and text "(.*?)"
|
484
|
+
Then I click on element having class "(.*?)" and text "(.*?)"
|
485
|
+
Then I click on element having xpath "(.*?)" and text "(.*?)"
|
486
|
+
Then I click on element having css "(.*?)" and text "(.*?)"
|
487
|
+
|
479
488
|
To forcefully click on web element use following steps (if above steps do not work) :
|
480
489
|
|
481
490
|
Then I forcefully click on element having id "(.*?)"
|
@@ -1,9 +1,12 @@
|
|
1
1
|
require_relative 'methods/click_elements_methods'
|
2
2
|
|
3
|
-
|
4
|
-
When(/^I click on element having (.+) "(.*?)"$/) do |type, access_name|
|
3
|
+
When(/^I click on element having (id|name|class|xpath|css) "(.*?)"(?: and text "(.*?)")?$/) do |type, access_name, text|
|
5
4
|
validate_locator type
|
6
|
-
|
5
|
+
if text
|
6
|
+
click_by_text(type, access_name, text)
|
7
|
+
else
|
8
|
+
click(type, access_name)
|
9
|
+
end
|
7
10
|
end
|
8
11
|
|
9
12
|
Then(/^I forcefully click on element having (.+) "(.*?)"$/) do |type, access_name|
|
@@ -1,10 +1,28 @@
|
|
1
1
|
require_relative 'required_files'
|
2
2
|
|
3
|
-
|
4
3
|
def click(access_type, access_name)
|
5
4
|
$driver.find_element(:"#{access_type}" => "#{access_name}").click
|
6
5
|
end
|
7
6
|
|
7
|
+
def click_by_text(access_type, access_name, text)
|
8
|
+
element_found = false
|
9
|
+
text_found = false
|
10
|
+
text_found = $driver.page_source.include? text
|
11
|
+
raise "Text '#{text}' was not found in the page source" unless text_found
|
12
|
+
# enter loop if the text is found
|
13
|
+
if text_found
|
14
|
+
elements = $driver.find_elements(:"#{access_type}" => "#{access_name}")
|
15
|
+
elements.each do |element|
|
16
|
+
if element.text == text
|
17
|
+
element_found = true
|
18
|
+
element.click
|
19
|
+
break
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
raise "Element not found having access type #{access_type}, access name #{access_name}, and text #{text}" unless element_found
|
24
|
+
end
|
25
|
+
|
8
26
|
def click_forcefully(access_type, access_name)
|
9
27
|
$driver.execute_script('arguments[0].click();', $driver.find_element(:"#{access_type}" => "#{access_name}"))
|
10
28
|
end
|
@@ -133,6 +133,20 @@ def switch_to_window_by_title window_title
|
|
133
133
|
raise "Window having title \"#{window_title}\" not found" if not window_found
|
134
134
|
end
|
135
135
|
|
136
|
+
def switch_to_window_by_url window_url
|
137
|
+
$previous_window = $driver.window_handle
|
138
|
+
window_found = false
|
139
|
+
$driver.window_handles.each { |handle|
|
140
|
+
$driver.switch_to.window handle
|
141
|
+
# match absolute or relative
|
142
|
+
if $driver.current_url.include?(window_url)
|
143
|
+
window_found = true
|
144
|
+
break
|
145
|
+
end
|
146
|
+
}
|
147
|
+
raise "Window having url \"#{window_url}\" not found" if not window_found
|
148
|
+
end
|
149
|
+
|
136
150
|
# Method to close new window
|
137
151
|
def close_new_window
|
138
152
|
$driver.close
|
@@ -50,6 +50,10 @@ Then(/^I switch to window having title "(.*?)"$/) do |window_title|
|
|
50
50
|
switch_to_window_by_title window_title
|
51
51
|
end
|
52
52
|
|
53
|
+
Then(/^I switch to window having url "(.*?)"$/) do |window_url|
|
54
|
+
switch_to_window_by_url window_url
|
55
|
+
end
|
56
|
+
|
53
57
|
# step to close new window
|
54
58
|
Then(/^I close new window$/) do
|
55
59
|
close_new_window
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: selenium-cucumber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sameer Sawant
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber
|