selenium-cucumber 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -146,4 +146,23 @@ def check_alert_text text
146
146
  if get_alert_text!=text
147
147
  raise TestCaseFailed , "Text on alert pop up not matched"
148
148
  end
149
+ end
150
+
151
+ def is_option_from_dropdown_selected(access_type, by, option, access_name, should_be_selected=true)
152
+ dropdown = WAIT.until {$driver.find_element(:"#{access_type}" => "#{access_name}")}
153
+ select_list = Selenium::WebDriver::Support::Select.new(dropdown)
154
+
155
+ puts select_list.first_selected_option.attribute("value")
156
+
157
+ if by=="text"
158
+ actual_value = select_list.first_selected_option.text
159
+ else
160
+ actual_value = select_list.first_selected_option.attribute("value")
161
+ end
162
+
163
+ if !actual_value==option && should_be_selected
164
+ raise "Option Not Selected From Dropwdown"
165
+ elsif actual_value==option && !should_be_selected
166
+ raise "Option Selected From Dropwdown"
167
+ end
149
168
  end
@@ -12,14 +12,21 @@ end
12
12
 
13
13
  # method to select option from dropdwon list
14
14
  def select_option_from_dropdown(access_type, by, option, access_name)
15
- dropdown = WAIT.until {$driver.find_element(:"#{access_type}" => "#{access_name}")}
15
+ dropdown = WAIT.until {$driver.find_element(:"#{access_type}" => "#{access_name}")}
16
16
  select_list = Selenium::WebDriver::Support::Select.new(dropdown)
17
17
  select_list.select_by(:"#{by}", "#{option}")
18
18
  end
19
19
 
20
+ # method to select all option from dropdwon list
21
+ def select_all_option_from_multiselect_dropdown(access_type, access_name)
22
+ dropdown = WAIT.until {$driver.find_element(:"#{access_type}" => "#{access_name}")}
23
+ select_list = Selenium::WebDriver::Support::Select.new(dropdown)
24
+ select_list.select_all()
25
+ end
26
+
20
27
  # method to unselect all option from dropdwon list
21
- def unselect_option_from_dropdown(access_type, access_name)
22
- dropdown = WAIT.until {$driver.find_element(:"#{access_type}" => "#{access_name}")}
28
+ def unselect_all_option_from_multiselect_dropdown(access_type, access_name)
29
+ dropdown = WAIT.until {$driver.find_element(:"#{access_type}" => "#{access_name}")}
23
30
  select_list = Selenium::WebDriver::Support::Select.new(dropdown)
24
31
  select_list.deselect_all()
25
32
  end
@@ -63,7 +70,7 @@ def select_option_from_radio_button_group(access_type, by, option, access_name)
63
70
 
64
71
  getter = ->(rb, by) { by == 'value' ? rb.attribute('value') : rb.text }
65
72
 
66
- ele = radio_button_group.find { |rb| puts getter.call(rb, by) }
73
+ ele = radio_button_group.find { |rb| getter.call(rb, by)==option }
67
74
 
68
75
  if !ele.selected?
69
76
  ele.click
@@ -1,27 +1,25 @@
1
1
  require_relative 'required_files'
2
2
 
3
-
3
+ #method to open link
4
4
  def navigate_to(link)
5
5
  $driver.get link
6
6
  end
7
7
 
8
+ #method to navigate back & forword
8
9
  def navigate(direction)
9
10
  if direction=="back"
10
11
  $driver.navigate.back
11
12
  else
12
- $driver.navigate.forword
13
+ $driver.navigate.forward
13
14
  end
14
15
  end
15
16
 
17
+ #method to quite webdriver instance
16
18
  def close_driver
17
19
  $driver.close
18
20
  end
19
21
 
20
- def scroll_to_element(access_type,access_name)
21
- ele_scroll = WAIT.until {$driver.find_element(:"#{access_type}" => "#{access_name}")}
22
- ele_scroll.location_once_scrolled_into_view
23
- end
24
-
22
+ #Method to zoom in/out page
25
23
  def zoom_in_out(in_out)
26
24
  if get_os=="windows"
27
25
  key="control"
@@ -32,7 +30,7 @@ def zoom_in_out(in_out)
32
30
  $driver.action.key_down(:"#{key}").send_keys(:"#{in_out}").key_up(:"#{key}").perform
33
31
  end
34
32
 
35
-
33
+ #Method to zoom in/out web page until web element displyas
36
34
  def zoom_in_out_till_element_display(access_type, in_out, access_name)
37
35
 
38
36
  if get_os=="windows"
@@ -52,16 +50,39 @@ def zoom_in_out_till_element_display(access_type, in_out, access_name)
52
50
 
53
51
  end
54
52
 
53
+ #Method to resize browser
55
54
  def resize_browser(width,heigth)
56
55
  $driver.manage.window.resize_to(width,heigth)
57
56
  end
58
57
 
58
+ #Method to maximize browser
59
+ def maximize_browser
60
+ $driver.manage().window().maximize()
61
+ end
62
+
59
63
  #Method to hover on element
60
64
  def hover_over_element(access_type,access_name)
61
65
  element = WAIT.until {$driver.find_element(:"#{access_type}" => "#{access_name}")}
62
66
  $driver.action.move_to(element).perform
63
67
  end
64
68
 
69
+ #Method to scroll page to perticular element
70
+ def scroll_to_element(access_type,access_name)
71
+ ele_scroll = WAIT.until {$driver.find_element(:"#{access_type}" => "#{access_name}")}
72
+ ele_scroll.location_once_scrolled_into_view
73
+ end
74
+
75
+ #method to scroll page to top or end
76
+ def scroll_page(to)
77
+ if to=="end"
78
+ $driver.execute_script("window.scrollTo(0,Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.clientHeight));")
79
+ elsif to=="top"
80
+ $driver.execute_script("window.scrollTo(Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.clientHeight),0);")
81
+ else
82
+ raise "Exception : Invalid Direction (only scroll \"top\" or \"end\")"
83
+ end
84
+ end
85
+
65
86
  def get_os
66
87
  case CONFIG['host_os']
67
88
  when /mingw32|windows/i
@@ -17,10 +17,15 @@ Then(/^I close browser$/) do
17
17
  end
18
18
 
19
19
  #step to resize browser
20
- Then(/^I resize browser window size to width (\d+) and heigth (\d+)$/) do |width, heigth|
20
+ Then(/^I resize browser window size to width (\d+) and height (\d+)$/) do |width, heigth|
21
21
  resize_browser(width, heigth)
22
22
  end
23
23
 
24
+ #step to maximize browser
25
+ Then(/^I maximize browser window$/) do
26
+ maximize_browser
27
+ end
28
+
24
29
  #steps to refresh page
25
30
  Then(/^I refresh page$/) do
26
31
  $driver.navigate.refresh
@@ -32,6 +37,11 @@ Then(/^I scroll to element having (.+) "(.*?)"$/) do |type, access_name|
32
37
  scroll_to_element(type, access_name)
33
38
  end
34
39
 
40
+ #steps to scroll web page to top or end
41
+ Then(/^I scroll to (top|end) of page$/) do |to|
42
+ scroll_page(to)
43
+ end
44
+
35
45
  #Step to hover over a element # Not work on windows firefox
36
46
  When(/^I hover over element having (.+) "(.*?)"$/) do |type, access_name|
37
47
  validate_locator type
@@ -1,5 +1,5 @@
1
1
  module Selenium
2
2
  module Cucumber
3
- VERSION = "0.0.8"
3
+ VERSION = "0.0.9"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium-cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-18 00:00:00.000000000 Z
12
+ date: 2014-07-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cucumber
@@ -82,7 +82,6 @@ files:
82
82
  - doc/installation.md
83
83
  - doc/selenium-cucumber-API.md
84
84
  - doc/selenium-cucumber-help.md
85
- - doc/selenium-cucumber-help.txt
86
85
  - bin/selenium-cucumber
87
86
  homepage: http://seleniumcucumber.wordpress.com/
88
87
  licenses:
@@ -1,16 +0,0 @@
1
- Usage: selenium-cucumber <command-name> [parameters] [options]
2
- <command-name> can be one of
3
- help
4
- gen
5
- version
6
-
7
- Commands:
8
- help : prints more detailed help information.
9
-
10
- gen : creates a skeleton features dir. This is usually used once when
11
- setting up selnium-cucumber to ensure that the features folder contains
12
- the right step definitions and environment to run with cucumber.
13
-
14
- version : prints the gem version
15
-
16
- Options: -v, --verbose Turns on verbose logging