web-object 0.3 → 0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2a2fffeb3acf048b6957849ea39944b1c75a8c23
4
- data.tar.gz: 0ea943c4bb8d2532da1539d40d490e40c6818249
3
+ metadata.gz: 8eae72fe16cf8d5395d86ba7cf83f07647ad9ea6
4
+ data.tar.gz: '038bdd6033856b97ee0c8a06b1ca60350bc9107a'
5
5
  SHA512:
6
- metadata.gz: cafb9c804bb6d197f8d2ad9ada415a51e0921fa2466703c5b7f39702d876467e3260e6c902442f0eb2a8387e2a71d49c1611b0b56513f99361e43866c291f5b5
7
- data.tar.gz: 2ea732d8685f7ba1a2e6128e100870e735ee0d979722f7fc7a2786fd5f780659eb08de51ba7695d1812a7e2d1485bed492f39974f1b1cfe7684b0443c9934a1d
6
+ metadata.gz: af376321aad8c7ad1bc2cd691060a17cd2a26cce3e441536320ccc3c09373e4f8447dfb8e3f8b32b6489f26e20dbfd02b04ede340bce1ba079d6f7ecd94b5a9f
7
+ data.tar.gz: 668e9197b50b0191d6b40d9c67ddc544a29b1e60fdb4d35bed31b6a4087693c330ba041708ee8d0fefa3d49da5bac2f73d072f86a946cd2e966ca39654c0c050
data/README.md CHANGED
@@ -16,6 +16,7 @@ commands on it like send_keys, click, displayed? .. and so on...
16
16
  - [Finding Multiple Elements](#find_elements)
17
17
  - [Syntax Summary](#summary)
18
18
  - [Usage](#usage)
19
+ - [WebConditions](#webconditions)
19
20
  - [Aliases](#alias)
20
21
  - [Contributing](#contributing)
21
22
  - [Issues](#issues)
@@ -1,11 +1,13 @@
1
1
  class WebObjectFormPage < WebObject
2
2
 
3
+ element :body_element, {:tag_name => 'body'}
3
4
  element :delayed_alert_button, {:id => 'alert_button'}
4
5
 
5
6
  element :toggle_visibility_button, {:id => 'toggle_visibility'}
6
7
  element :toggle_visibility_text, {:id => 'visible_text'}
7
8
 
8
9
  element :toggle_presence_button, {:id => 'toggle_presence'}
10
+ element :toggle_presence_div, {:id => 'presence'}
9
11
  element :toggle_presence_link, {:id => 'toggle_presence_link'}, error=false
10
12
 
11
13
  element :toggle_enability_button, {:id => 'enable_button'}
@@ -16,65 +18,109 @@ class WebObjectFormPage < WebObject
16
18
 
17
19
  element :toggle_attribute_button, {:id => 'toggle_attribute'}
18
20
  element :empty_attribute_button, {:id => 'empty_attribute'}
21
+
22
+ element :delayed_url_button, {:id => 'delayed_url'}
23
+ element :delayed_title_button, {:id => 'delayed_title'}
19
24
 
25
+ element :delayed_more_cells_button, {:id => 'delayed_more_cells'}
26
+ element :delayed_less_cells_button, {:id => 'delayed_less_cells'}
27
+ elements :count_of_cells, {:css => 'tr#row>td'}
28
+
29
+ def initialize(driver)
30
+ @wait = Selenium::WebDriver::Wait.new(:timeout => 10)
31
+ super(driver)
32
+ end
20
33
 
21
34
  def wait_for_text_visibility(state)
22
- wait = Selenium::WebDriver::Wait.new(:timeout => 10)
23
35
  if state=="visible"
24
36
  # puts ExpectedConditions.instance_methods
25
- wait.until{element_is_visible(toggle_visibility_text)}
37
+ @wait.until{element_is_visible(toggle_visibility_text)}
26
38
  else
27
- wait.until{element_is_invisible(toggle_visibility_text)}
39
+ @wait.until{element_is_invisible(toggle_visibility_text)}
28
40
  end
29
41
  end
30
42
 
31
43
  def wait_for_link_presence(state)
32
- wait = Selenium::WebDriver::Wait.new(:timeout => 10)
33
44
  if state=="present"
34
- wait.until{element_is_present(:id => 'toggle_presence_link')}
45
+ @wait.until{element_is_present(:id => 'toggle_presence_link')}
35
46
  else
36
- wait.until{element_is_absent(:id => 'toggle_presence_link')}
47
+ @wait.until{element_is_absent(:id => 'toggle_presence_link')}
37
48
  end
38
49
  end
39
50
 
40
51
  def wait_for_field_to_be_enabled(state)
41
- wait = Selenium::WebDriver::Wait.new(:timeout => 10)
42
52
  if state=="enabled"
43
- wait.until{element_is_enabled(toggle_enability_field)}
53
+ @wait.until{element_is_enabled(toggle_enability_field)}
44
54
  else
45
- wait.until{element_is_disabled(toggle_enability_field)}
55
+ @wait.until{element_is_disabled(toggle_enability_field)}
46
56
  end
47
57
  end
48
58
 
49
59
  def wait_for_button_to_be_clickable
50
- wait = Selenium::WebDriver::Wait.new(:timeout => 10)
51
- wait.until{element_is_clickable(desired_clickable_button)}
60
+ @wait.until{element_is_clickable(desired_clickable_button)}
52
61
  end
53
62
 
54
63
  def wait_for_attribute(state)
55
- wait = Selenium::WebDriver::Wait.new(:timeout => 10)
56
64
  if state=="present"
57
- wait.until{attribute_is_present(toggle_attribute_button,'style')}
65
+ @wait.until{attribute_is_present(toggle_attribute_button,'style')}
58
66
  else
59
- wait.until{attribute_is_absent(toggle_attribute_button,'style')}
67
+ @wait.until{attribute_is_absent(toggle_attribute_button,'style')}
60
68
  end
61
69
  end
62
70
 
63
71
  def wait_for_attribute_value(state)
64
- wait = Selenium::WebDriver::Wait.new(:timeout => 10)
65
72
  if state=="set"
66
- wait.until{attribute_is_not_empty(empty_attribute_button,'style')}
73
+ @wait.until{attribute_is_not_empty(empty_attribute_button,'style')}
67
74
  else
68
- wait.until{attribute_is_empty(empty_attribute_button,'style')}
75
+ @wait.until{attribute_is_empty(empty_attribute_button,'style')}
69
76
  end
70
77
  end
71
78
 
72
79
  def wait_for_attribute_value_match(action)
73
- wait = Selenium::WebDriver::Wait.new(:timeout => 10)
74
80
  if action=="match"
75
- wait.until{attribute_to_match(toggle_attribute_button, 'style', 'color: red;')}
81
+ @wait.until{attribute_to_match(toggle_attribute_button, 'style', 'color: red;')}
82
+ else
83
+ @wait.until{attribute_to_contain(toggle_attribute_button, 'style', 'red')}
84
+ end
85
+ end
86
+
87
+ def wait_for_url(action, expected)
88
+ if action=="match"
89
+ @wait.until{url_to_match(expected)}
90
+ else
91
+ @wait.until{url_to_include(expected)}
92
+ end
93
+ end
94
+
95
+ def wait_for_title(action, expected)
96
+ if action=="match"
97
+ @wait.until{title_to_match(expected)}
98
+ else
99
+ @wait.until{title_to_include(expected)}
100
+ end
101
+ end
102
+
103
+ def wait_for_text_presence(txt)
104
+ @wait.until{text_to_be_on_page(txt)}
105
+ end
106
+
107
+ def wait_for_text_in_element(action, ele, txt)
108
+ if action == "present"
109
+ @wait.until{text_in_element_to_match(ele,txt)}
110
+ elsif action == 'included'
111
+ @wait.until{text_in_element_to_include(ele,txt)}
112
+ else
113
+ @wait.until{text_in_element_to_contain(ele,txt)}
114
+ end
115
+ end
116
+
117
+ def wait_for_element_count(type,count)
118
+ if type == 'greater'
119
+ waiting(10).until{elements_count_to_be_more_than({:css=>'#row>td'}, count)}
120
+ elsif type == 'less'
121
+ waiting(10).until{elements_count_to_be_less_than({:css=>'#row>td'}, count)}
76
122
  else
77
- wait.until{attribute_to_contain(toggle_attribute_button, 'style', 'red')}
123
+ waiting(10).until{elements_count_to_be_equal_to({:css=>'#row>td'}, count)}
78
124
  end
79
125
  end
80
126
 
@@ -30,4 +30,22 @@ Feature: As a web-object author, I want to make sure
30
30
  Scenario: Verify condition for attribute value to contain expected text
31
31
  When I follow toggle_attribute button
32
32
  Then I wait for attribute to be contain value
33
- And I verify element attribute is present
33
+ And I verify element attribute is present
34
+
35
+ Scenario: Verify condition for element count to be greater than expected
36
+ When I follow delayed_more_cells button
37
+ Then I wait for element count to be greater than 7
38
+ And I verify element count is greater than 7
39
+
40
+ Scenario: Verify condition for element count to be less than expected
41
+ When I follow delayed_less_cells button
42
+ Then I wait for element count to be less than 3
43
+ And I verify element count is less than 3
44
+
45
+ Scenario: Verify condition for element count to be equal to expected
46
+ When I follow delayed_more_cells button
47
+ Then I wait for element count to be equal to 9
48
+ And I verify element count is equal to 9
49
+ When I follow delayed_less_cells button
50
+ Then I wait for element count to be equal to 2
51
+ And I verify element count is equal to 2
@@ -0,0 +1,29 @@
1
+ Feature: As a web-object author, I want to make sure
2
+ conditional method around element properties work fine.
3
+
4
+ Background:
5
+ Given I am on web-object form page
6
+
7
+ Scenario: Verify condition for delayed text presence and absence
8
+ And I verify text is absent
9
+ When I follow toggle_presence button
10
+ Then I wait for text to be present
11
+ And I verify text is present
12
+
13
+ Scenario: Verify condition for delayed text presence inside element
14
+ And I verify text is absent inside element
15
+ When I follow toggle_presence button
16
+ Then I wait for text to be present inside element
17
+ And I verify text is present inside element
18
+
19
+ Scenario: Verify condition for delayed text presence inside element
20
+ And I verify text is absent inside element
21
+ When I follow toggle_presence button
22
+ Then I wait for text to be included inside element
23
+ And I verify text is included inside element
24
+
25
+ Scenario: Verify condition for delayed text presence inside element using alias method
26
+ And I verify text is absent inside element
27
+ When I follow toggle_presence button
28
+ Then I wait for text to be contained inside element
29
+ And I verify text is included inside element
@@ -0,0 +1,14 @@
1
+ Feature: As a web-object author, I want to make sure
2
+ conditional method around titles work fine.
3
+
4
+ Scenario: Verify condition for delayed alert
5
+ Given I am on web-object form page
6
+ When I follow delayed_title button
7
+ And I wait for title to update
8
+ Then I verify newly updated title
9
+
10
+ Scenario: Verify condition for delayed alert
11
+ Given I am on web-object form page
12
+ When I follow delayed_title button
13
+ And I wait for title to contain a sub string
14
+ Then I verify newly updated title
@@ -0,0 +1,14 @@
1
+ Feature: As a web-object author, I want to make sure
2
+ conditional method around urls work fine.
3
+
4
+ Scenario: Verify condition for delayed alert
5
+ Given I am on web-object form page
6
+ When I follow delayed_url button
7
+ And I wait for url to update
8
+ Then I verify newly updated url
9
+
10
+ Scenario: Verify condition for delayed alert
11
+ Given I am on web-object form page
12
+ When I follow delayed_url button
13
+ And I wait for url to contain a sub string
14
+ Then I verify newly updated url
@@ -1,7 +1,7 @@
1
1
  Given(/^I am on web-object form page$/) do
2
- url = "https://krupani.github.io/web-object"
3
- # url = "file:////Users/kaushal.rupani/projects/web-object/docs/index.html"
4
- @driver.get(url)
2
+ # @base_url = "https://krupani.github.io/web-object"
3
+ @base_url = "file:///Users/kaushal.rupani/projects/web-object/docs/index.html"
4
+ @driver.get(@base_url)
5
5
  end
6
6
 
7
7
  When(/^I follow ([^"]*) button$/) do |btn|
@@ -21,6 +21,14 @@ When(/^I follow ([^"]*) button$/) do |btn|
21
21
  wo.toggle_attribute_button.click
22
22
  when "empty_attribute"
23
23
  wo.empty_attribute_button.click
24
+ when "delayed_url"
25
+ wo.delayed_url_button.click
26
+ when "delayed_title"
27
+ wo.delayed_title_button.click
28
+ when "delayed_more_cells"
29
+ wo.delayed_more_cells_button.click
30
+ when "delayed_less_cells"
31
+ wo.delayed_less_cells_button.click
24
32
  end
25
33
  end
26
34
 
@@ -23,4 +23,20 @@ end
23
23
  Then(/^I wait for attribute to be (match|contain) value$/) do |action|
24
24
  wo = WebObjectFormPage.new(@driver)
25
25
  wo.wait_for_attribute_value_match(action)
26
- end
26
+ end
27
+
28
+ Then(/^I wait for element count to be (greater|less|equal) (?:than|to) (\d+)$/) do |type,count|
29
+ wo = WebObjectFormPage.new(@driver)
30
+ wo.wait_for_element_count(type, count)
31
+ end
32
+
33
+ And(/^I verify element count is (greater|less|equal) (?:than|to) (\d+)$/) do |type,count|
34
+ wo = WebObjectFormPage.new(@driver)
35
+ if type=='greater'
36
+ expect(wo.count_of_cells.size).to be > count.to_i
37
+ elsif type == 'less'
38
+ expect(wo.count_of_cells.size).to be < count.to_i
39
+ else
40
+ expect(wo.count_of_cells.size).to eq count.to_i
41
+ end
42
+ end
@@ -0,0 +1,30 @@
1
+ And(/^I verify text is (absent|present)$/) do |state|
2
+ wo = WebObjectFormPage.new(@driver)
3
+ if state=="present"
4
+ expect(wo.body_element.text).to include "This Link was recently added into DOM"
5
+ else
6
+ expect(wo.body_element.text).not_to include "This Link was recently added into DOM"
7
+ end
8
+ end
9
+
10
+ Then(/^I wait for text to be (present|absent)$/) do |state|
11
+ wo = WebObjectFormPage.new(@driver)
12
+ wo.wait_for_text_presence("This Link was recently added into DOM")
13
+ end
14
+
15
+ And(/^I verify text is (absent|present|included) inside element$/) do |state|
16
+ wo = WebObjectFormPage.new(@driver)
17
+ if state=="present"
18
+ expect(wo.toggle_presence_div.text).to include "This Link was recently added into DOM"
19
+ elsif state == "included"
20
+ expect(wo.toggle_presence_div.text).to include "This Link was recently added into DOM"
21
+ else
22
+ expect(wo.toggle_presence_div.text).not_to include "This Link was recently added into DOM"
23
+ end
24
+ end
25
+
26
+ Then(/^I wait for text to be (present|included|contained) inside element$/) do |state|
27
+ wo = WebObjectFormPage.new(@driver)
28
+ wo.wait_for_text_in_element(state, wo.toggle_presence_div, "This Link was recently added into DOM")
29
+ end
30
+
@@ -0,0 +1,13 @@
1
+ And(/^I wait for title to contain a sub string$/) do
2
+ wo = WebObjectFormPage.new(@driver)
3
+ wo.wait_for_title("contain", "New")
4
+ end
5
+
6
+ And(/^I wait for title to update$/) do
7
+ wo = WebObjectFormPage.new(@driver)
8
+ wo.wait_for_title("match", 'This is New Title')
9
+ end
10
+
11
+ Then(/^I verify newly updated title$/) do
12
+ expect(@driver.title).to eq "This is New Title"
13
+ end
@@ -0,0 +1,13 @@
1
+ And(/^I wait for url to contain a sub string$/) do
2
+ wo = WebObjectFormPage.new(@driver)
3
+ wo.wait_for_url("contain", "newly_appended")
4
+ end
5
+
6
+ And(/^I wait for url to update$/) do
7
+ wo = WebObjectFormPage.new(@driver)
8
+ wo.wait_for_url("match", @base_url+"#newly_appended")
9
+ end
10
+
11
+ Then(/^I verify newly updated url$/) do
12
+ expect(@driver.current_url).to include("#newly_appended")
13
+ end
@@ -73,4 +73,54 @@ module WebConditions
73
73
  end
74
74
  alias_method :attribute_to_contain, :attribute_to_include
75
75
 
76
+
77
+ # @method elements_count_to_be_more_than(ele,count)
78
+ # @param ele [Array of WebElement object]
79
+ # @param ele [locator Hash] -- eg {:id => 'some_id'}]
80
+ # @param count [Fixnum] -- expected count of elements present on page
81
+ # @return [Boolean true] -- if actual count found on page is greater than expected count passed in param
82
+ # @return [Boolean false] -- if actual count found on page is less than expected count passed in param
83
+
84
+ def elements_count_to_be_more_than(loc,count)
85
+ elements = @driver.find_elements(loc)
86
+ if elements.size > count.to_i
87
+ true
88
+ else
89
+ false
90
+ end
91
+ end
92
+
93
+
94
+ # @method elements_count_to_be_less_than(ele,count)
95
+ # @param ele [Array of WebElement object]
96
+ # @param ele [locator Hash] -- eg {:id => 'some_id'}]
97
+ # @param count [Fixnum] -- expected count of elements present on page
98
+ # @return [Boolean true] -- if actual count found on page is less than expected count passed in param
99
+ # @return [Boolean false] -- if actual count found on page is greater than expected count passed in param
100
+
101
+ def elements_count_to_be_less_than(loc,count)
102
+ elements = @driver.find_elements(loc)
103
+ if elements.size < count.to_i
104
+ true
105
+ else
106
+ false
107
+ end
108
+ end
109
+
110
+ # @method elements_count_to_be_equal_to(ele,count)
111
+ # @param ele [Array of WebElement object]
112
+ # @param ele [locator Hash] -- eg {:id => 'some_id'}]
113
+ # @param count [Fixnum] -- expected count of elements present on page
114
+ # @return [Boolean true] -- if actual count found on page is less than expected count passed in param
115
+ # @return [Boolean false] -- if actual count found on page is greater than expected count passed in param
116
+
117
+ def elements_count_to_be_equal_to(loc,count)
118
+ elements = @driver.find_elements(loc)
119
+ if elements.size == count.to_i
120
+ true
121
+ else
122
+ false
123
+ end
124
+ end
125
+
76
126
  end #module WebConditions
@@ -0,0 +1,52 @@
1
+ module WebConditions
2
+
3
+ # @method elements_count_to_be_more_than(ele,count)
4
+ # @param ele [Array of WebElement object]
5
+ # @param ele [locator Hash] -- eg {:id => 'some_id'}]
6
+ # @param count [Fixnum] -- expected count of elements present on page
7
+ # @return [Boolean true] -- if actual count found on page is greater than expected count passed in param
8
+ # @return [Boolean false] -- if actual count found on page is less than expected count passed in param
9
+
10
+ def elements_count_to_be_more_than(loc,count)
11
+ elements = @driver.find_elements(loc)
12
+ if elements.size > count.to_i
13
+ true
14
+ else
15
+ false
16
+ end
17
+ end
18
+
19
+
20
+ # @method elements_count_to_be_less_than(ele,count)
21
+ # @param ele [Array of WebElement object]
22
+ # @param ele [locator Hash] -- eg {:id => 'some_id'}]
23
+ # @param count [Fixnum] -- expected count of elements present on page
24
+ # @return [Boolean true] -- if actual count found on page is less than expected count passed in param
25
+ # @return [Boolean false] -- if actual count found on page is greater than expected count passed in param
26
+
27
+ def elements_count_to_be_less_than(loc,count)
28
+ elements = @driver.find_elements(loc)
29
+ if elements.size < count.to_i
30
+ true
31
+ else
32
+ false
33
+ end
34
+ end
35
+
36
+ # @method elements_count_to_be_equal_to(ele,count)
37
+ # @param ele [Array of WebElement object]
38
+ # @param ele [locator Hash] -- eg {:id => 'some_id'}]
39
+ # @param count [Fixnum] -- expected count of elements present on page
40
+ # @return [Boolean true] -- if actual count found on page is less than expected count passed in param
41
+ # @return [Boolean false] -- if actual count found on page is greater than expected count passed in param
42
+
43
+ def elements_count_to_be_equal_to(loc,count)
44
+ elements = @driver.find_elements(loc)
45
+ if elements.size == count.to_i
46
+ true
47
+ else
48
+ false
49
+ end
50
+ end
51
+
52
+ end #module WebConditions
@@ -0,0 +1,49 @@
1
+ module WebConditions
2
+
3
+ # @method text_to_be_on_page(txt)
4
+ # @param txt [String]
5
+ # @return [Boolean true] -- if text is found in the body of page
6
+ # @return [Boolean false] -- if text is not found in the body of page
7
+
8
+ def text_to_be_on_page(txt)
9
+ # puts element_or_locator({:tag_name => 'body'}).text
10
+ if element_or_locator({:tag_name => 'body'}).text.include?(txt)
11
+ true
12
+ else
13
+ false
14
+ end
15
+ end
16
+
17
+ # @method text_in_element_to_match(ele,attr)
18
+ # @param ele [WebElement object]
19
+ # @param ele [locator Hash] -- eg {:id => 'some_id'}]
20
+ # @param txt [String] -- text that will be checked in the body of the page
21
+ # @return [Boolean true] -- if text is found inside element and is exact match of the passed text in parameter
22
+ # @return [Boolean false] -- if text is found inside element and is not an exact match of the passed text in parameter
23
+
24
+ def text_in_element_to_match(ele, txt)
25
+ if element_or_locator(ele).text == txt
26
+ true
27
+ else
28
+ false
29
+ end
30
+ end
31
+
32
+ # @method text_in_element_to_match(ele,attr)
33
+ # @param ele [WebElement object]
34
+ # @param ele [locator Hash] -- eg {:id => 'some_id'}]
35
+ # @param txt [String] -- text that will be checked in the body of the page
36
+ # @return [Boolean true] -- if text is found inside element and is exact match of the passed text in parameter
37
+ # @return [Boolean false] -- if text is found inside element and is not an exact match of the passed text in parameter
38
+ # @alias text_in_element_to_contain(txt) -- alternative name for this method, can be used as both
39
+
40
+ def text_in_element_to_include(ele, txt)
41
+ if element_or_locator(ele).text.include?(txt)
42
+ true
43
+ else
44
+ false
45
+ end
46
+ end
47
+ alias_method :text_in_element_to_contain, :text_in_element_to_include
48
+
49
+ end
@@ -0,0 +1,32 @@
1
+ module WebConditions
2
+
3
+ # @method title_to_match
4
+ # @param [title] -- expected title to match the actual title of the web page
5
+ # @return [Boolean true] -- if expected title matches the actual title on the web page
6
+ # @return [Boolean false] -- if expected title does not match the actual title on the web page
7
+
8
+ def title_to_match(title)
9
+ actual = @driver.title
10
+ if actual == title
11
+ true
12
+ else
13
+ false
14
+ end
15
+ end
16
+
17
+ # @method title_to_include
18
+ # @param [title] -- expected title to match the actual title of the web page
19
+ # @return [Boolean true] -- if expected title is included in the actual title on the web page
20
+ # @return [Boolean false] -- if expected title is not included in the actual title on the web page
21
+
22
+ def title_to_include(title)
23
+ actual = @driver.title
24
+ if actual.include?(title)
25
+ true
26
+ else
27
+ false
28
+ end
29
+ end
30
+ alias_method :title_to_contain, :title_to_include
31
+
32
+ end
@@ -0,0 +1,32 @@
1
+ module WebConditions
2
+
3
+ # @method url_to_match
4
+ # @param [url] -- expected url to match the actual url on the browser
5
+ # @return [Boolean true] -- if expected url matches the actual url on the browser
6
+ # @return [Boolean false] -- if expected url does not match the actual url on the browser
7
+
8
+ def url_to_match(url)
9
+ actual = @driver.current_url
10
+ if actual == url
11
+ true
12
+ else
13
+ false
14
+ end
15
+ end
16
+
17
+ # @method url_to_include
18
+ # @param [url] -- part of the expected url to be present in actual url in the browser
19
+ # @return [Boolean true] -- if expected url in parameter in present in actual url
20
+ # @return [Boolean false] -- if expected url in parameter in not present in actual url
21
+
22
+ def url_to_include(url)
23
+ actual = @driver.current_url
24
+ if actual.include?(url)
25
+ true
26
+ else
27
+ false
28
+ end
29
+ end
30
+ alias_method :url_to_contain, :url_to_include
31
+
32
+ end
@@ -0,0 +1,11 @@
1
+ module WebConditions
2
+
3
+ # @method waiting(time_in_secs)
4
+ # @param time_in_secs [Fixnum] -- Maximum amount of time a condition needs to wait
5
+ # @return [object of WebDriver::Wait class]
6
+
7
+ def waiting(time_in_secs)
8
+ Selenium::WebDriver::Wait.new(:timeout => time_in_secs.to_i)
9
+ end
10
+
11
+ end
@@ -1 +1 @@
1
- 0.3
1
+ 0.4
data/lib/web-object.rb CHANGED
@@ -5,6 +5,11 @@ require 'web-object/elements'
5
5
  require 'web-object/conditions/alert'
6
6
  require 'web-object/conditions/element_interaction'
7
7
  require 'web-object/conditions/element_property'
8
+ require 'web-object/conditions/url'
9
+ require 'web-object/conditions/title'
10
+ require 'web-object/conditions/text'
11
+ require 'web-object/conditions/waiting'
12
+ require 'web-object/conditions/elements_count'
8
13
 
9
14
  include WebConditions
10
15
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web-object
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.3'
4
+ version: '0.4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kaushal Rupani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-17 00:00:00.000000000 Z
11
+ date: 2017-05-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Helps in generating page object style framework using original webdriver
14
14
  flavor
@@ -26,17 +26,26 @@ files:
26
26
  - features/scenarios/alert.feature
27
27
  - features/scenarios/element_interaction.feature
28
28
  - features/scenarios/element_property.feature
29
+ - features/scenarios/text.feature
30
+ - features/scenarios/title.feature
31
+ - features/scenarios/url.feature
29
32
  - features/step_definitions/alert_steps.rb
30
33
  - features/step_definitions/element_interaction_steps.rb
31
34
  - features/step_definitions/element_property_steps.rb
35
+ - features/step_definitions/text_steps.rb
36
+ - features/step_definitions/title_steps.rb
37
+ - features/step_definitions/url_steps.rb
32
38
  - features/support/env.rb
33
39
  - features/support/hooks.rb
34
40
  - lib/web-object.rb
35
41
  - lib/web-object/conditions/alert.rb
36
42
  - lib/web-object/conditions/element_interaction.rb
37
43
  - lib/web-object/conditions/element_property.rb
38
- - lib/web-object/conditions/url_n_title.rb
39
- - lib/web-object/conditions/window_n_frame.rb
44
+ - lib/web-object/conditions/elements_count.rb
45
+ - lib/web-object/conditions/text.rb
46
+ - lib/web-object/conditions/title.rb
47
+ - lib/web-object/conditions/url.rb
48
+ - lib/web-object/conditions/waiting.rb
40
49
  - lib/web-object/element.rb
41
50
  - lib/web-object/elements.rb
42
51
  - lib/web-object/version
@@ -70,9 +79,15 @@ test_files:
70
79
  - features/scenarios/alert.feature
71
80
  - features/scenarios/element_interaction.feature
72
81
  - features/scenarios/element_property.feature
82
+ - features/scenarios/text.feature
83
+ - features/scenarios/title.feature
84
+ - features/scenarios/url.feature
73
85
  - features/step_definitions/alert_steps.rb
74
86
  - features/step_definitions/element_interaction_steps.rb
75
87
  - features/step_definitions/element_property_steps.rb
88
+ - features/step_definitions/text_steps.rb
89
+ - features/step_definitions/title_steps.rb
90
+ - features/step_definitions/url_steps.rb
76
91
  - features/support/env.rb
77
92
  - features/support/hooks.rb
78
93
  - cucumber.yml
File without changes
File without changes