Ifd_Automation 2.8.2 → 2.9
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/bin/documentation_generator.rb +0 -0
- data/bin/generate.rb +0 -6
- data/bin/helper.rb +0 -0
- data/lib/Ifd_Automation.rb +1 -0
- data/{project/features/step_definitions/IFD_Libraries → lib/Ifd_Automation}/REST_steps.rb +0 -0
- data/{project/features/step_definitions/IFD_Libraries → lib/Ifd_Automation}/SOAP_steps.rb +0 -0
- data/lib/Ifd_Automation/all_steps.rb +0 -0
- data/{project/features/step_definitions/IFD_Libraries → lib/Ifd_Automation}/database_steps.rb +1 -1
- data/{project/features/step_definitions/IFD_Libraries → lib/Ifd_Automation}/dynamic_store_value_steps.rb +0 -0
- data/{project/features/step_definitions/IFD_Libraries → lib/Ifd_Automation}/email_steps.rb +0 -0
- data/{project/features/step_definitions/IFD_Libraries → lib/Ifd_Automation}/file_steps.rb +0 -0
- data/lib/Ifd_Automation/require_libs.rb +0 -0
- data/{project/features/step_definitions/IFD_Libraries → lib/Ifd_Automation}/ssh_steps.rb +0 -0
- data/lib/Ifd_Automation/version.rb +1 -1
- data/lib/Ifd_Automation/web_steps.rb +109 -0
- data/lib/helper/assertion_helper.rb +0 -0
- data/lib/helper/auto_util.rb +0 -0
- data/lib/helper/database_helper.rb +0 -0
- data/lib/helper/file_helper.rb +0 -0
- data/lib/helper/mail_helper.rb +0 -0
- data/lib/helper/rest_helper.rb +0 -0
- data/lib/helper/soap_helper.rb +0 -0
- data/lib/helper/ssh_helper.rb +1 -1
- data/lib/helper/step_fallback.rb +13 -0
- data/lib/helper/tolerance_for_selenium_sync_issues.rb +72 -0
- data/lib/helper/web_steps_helper.rb +539 -325
- data/project/Gemfile +0 -0
- data/project/README.md +5 -21
- data/project/cucumber.yml +3 -3
- data/project/features/TestData/globalData.yml +0 -0
- data/project/features/TestSuite/WebGUI.feature +3 -4
- data/project/features/step_definitions/lib_steps/steps_definition.rb +3 -0
- data/project/features/step_definitions/repositories/project_object.yml +1 -2
- data/project/features/support/env.rb +30 -100
- data/project/features/support/hooks.rb +4 -4
- data/project/features/support/project_config.rb +13 -0
- metadata +30 -23
- data/project/Dockerfile +0 -20
- data/project/docker-compose.yml +0 -7
- data/project/features/Screenshot/sample.jpg +0 -0
- data/project/features/step_definitions/IFD_Libraries/web_steps.rb +0 -98
- data/project/features/step_definitions/lib_steps/actionwords.rb +0 -9
- data/project/features/step_definitions/lib_steps/steps.rb +0 -6
data/project/Gemfile
CHANGED
File without changes
|
data/project/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
###Ifd_Automation gem
|
2
2
|
Ifd_Automation is an open-source tool for automating GUI, RESTful, SOAP, Database and eMail.
|
3
|
-
Importantly, Ifd_Automation is
|
3
|
+
Importantly, Ifd_Automation is cross-platform, it allows you to write tests against multiple platforms (Linux, Windows, MacOS) on multiple browsers (chrome, firefox ...) using the same API.
|
4
4
|
|
5
5
|
###Getting Started
|
6
6
|
These instructions will get you a copy of the project up and running on your local machine for testing purposes. See deployment for notes on how to install Ifd_Automation gem
|
@@ -26,8 +26,10 @@ By default, the steps which relate to test data will be read/created from this f
|
|
26
26
|
- TestSuite folder
|
27
27
|
Place to store user's feature files.
|
28
28
|
|
29
|
+
- pre-defined-steps folder
|
30
|
+
All available steps from framework
|
31
|
+
|
29
32
|
- Step_definitions folder
|
30
|
-
- IFD_Libraries (contains custom Ifd_Automation steps)
|
31
33
|
- lib_steps
|
32
34
|
- actionword.rb
|
33
35
|
- steps.rb
|
@@ -37,24 +39,6 @@ Place to store user's feature files.
|
|
37
39
|
- support
|
38
40
|
- env.rb
|
39
41
|
- hook.rb
|
42
|
+
|
40
43
|
###Usage
|
41
44
|
####Available steps
|
42
|
-
All available steps are located at IFD_Libaries folder, below are instructions show how to use these libraries
|
43
|
-
|
44
|
-
----
|
45
|
-
#####web steps
|
46
|
-
1. Open browser and navigate to the page test page. The page address can be insert directly into step or using dynamic
|
47
|
-
`Given I am on the "page_url" page`
|
48
|
-
#####example
|
49
|
-
- `Given I am on the "http://google.com" page`
|
50
|
-
- `Given I am on the "params='test_page'" page`
|
51
|
-
|
52
|
-
2. Wait for number of seconds before doing the next step
|
53
|
-
`And I wait for <number> seconds`
|
54
|
-
#####example
|
55
|
-
`And I wait for 5 seconds`
|
56
|
-
3. Click on an element
|
57
|
-
`And I click on "string"`
|
58
|
-
#####example
|
59
|
-
`And I click on "button_login"`
|
60
|
-
|
data/project/cucumber.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
default: --no-source
|
2
|
-
|
3
|
-
remote_chrome: BROWSER=chrome
|
4
|
-
remote_firefox: BROWSER=firefox
|
2
|
+
remote: SELENIUM=remote
|
3
|
+
remote_chrome: BROWSER=chrome -p remote
|
4
|
+
remote_firefox: BROWSER=firefox -p remote
|
5
5
|
junit_report: -f progress -f junit -o Report
|
6
6
|
html_report: -f progress -f html -o Report
|
File without changes
|
@@ -1,2 +1 @@
|
|
1
|
-
|
2
|
-
textbox_password: {css_selector: '#passwordField'}
|
1
|
+
test: {xpath_selector: '//ul[@id="second-menu"]/li[2]/a'}
|
@@ -12,39 +12,14 @@ require 'capybara/cucumber'
|
|
12
12
|
require 'cucumber'
|
13
13
|
require 'yaml'
|
14
14
|
require 'selenium-webdriver'
|
15
|
+
require "#{$current_dir}/project_config.rb"
|
15
16
|
require 'Ifd_Automation'
|
17
|
+
# require_relative '../../../lib/Ifd_Automation/web_steps'
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
19
|
+
$_CFWEB['Wait Time'] = ENV["WAIT_TIME"] || $wait_time
|
20
|
+
$_CFWEB['Print Log'] = ENV["PRINT_LOG"] || $print_log
|
21
|
+
$_CFWEB['Maximize Browser'] = ENV["MAXIMIZE_BROWSER"] || $maximize_browser
|
20
22
|
|
21
|
-
$_CFWEB['Default Browser'] = ENV["BROWSER"].downcase
|
22
|
-
$_CFWEB['Wait Time'] = ENV["wait_time"] || 10
|
23
|
-
$_CFWEB['Print Log'] = ENV["print_log"]
|
24
|
-
$_CFWEB['Maximize Browser'] = ENV["maximize_browser"] || true
|
25
|
-
$SEND_EMAIL_USERNAME = $PARAMS["send_email_username"]
|
26
|
-
$SEND_EMAIL_PASSWORD = $PARAMS["send_email_password"]
|
27
|
-
$RECEIVE_EMAIL_USERNAME = $PARAMS["receive_email_username"]
|
28
|
-
$RECEIVE_EMAIL_PASSWORD = $PARAMS["receive_email_password"]
|
29
|
-
Mail.defaults do
|
30
|
-
delivery_method :smtp, {
|
31
|
-
:enable_starttls_auto => true,
|
32
|
-
:address => 'smtp.gmail.com',
|
33
|
-
:port => 25,
|
34
|
-
:domain => 'gmail.com',
|
35
|
-
:authentication => :plain,
|
36
|
-
:openssl_verify_mode => 'none',
|
37
|
-
:user_name => $SEND_EMAIL_USERNAME,
|
38
|
-
:password => $SEND_EMAIL_PASSWORD
|
39
|
-
}
|
40
|
-
retriever_method :pop3, {
|
41
|
-
:address => 'pop.gmail.com',
|
42
|
-
:port => 995,
|
43
|
-
:user_name => $RECEIVE_EMAIL_USERNAME,
|
44
|
-
:password => $RECEIVE_EMAIL_PASSWORD,
|
45
|
-
:enable_ssl => true
|
46
|
-
}
|
47
|
-
end
|
48
23
|
Capybara.configure do |config|
|
49
24
|
config.default_max_wait_time = $_CFWEB['Wait Time']
|
50
25
|
config.default_driver = :selenium
|
@@ -52,76 +27,31 @@ Capybara.configure do |config|
|
|
52
27
|
config.ignore_hidden_elements = true
|
53
28
|
end
|
54
29
|
|
55
|
-
|
56
|
-
|
57
|
-
when "firefox"
|
58
|
-
caps = Selenium::WebDriver::Remote::Capabilities.firefox
|
59
|
-
caps['recordVideo'] = ENV["recordVideo"]
|
60
|
-
caps['name'] = ENV["name"]
|
61
|
-
caps['build'] = ENV["build"]
|
62
|
-
Capybara.register_driver :selenium do |app|
|
63
|
-
Capybara::Selenium::Driver.new(app,
|
64
|
-
browser: :remote,
|
65
|
-
url: "http://#{ENV["SELENIUM_SERVER"]}:4444/wd/hub",
|
66
|
-
desired_capabilities: caps)
|
67
|
-
end
|
68
|
-
when "chrome"
|
69
|
-
caps = Selenium::WebDriver::Remote::Capabilities.chrome
|
70
|
-
caps['recordVideo'] = ENV["recordVideo"]
|
71
|
-
caps['name'] = ENV["name"]
|
72
|
-
caps['build'] = ENV["build"]
|
73
|
-
Capybara.register_driver :selenium do |app|
|
74
|
-
Capybara::Selenium::Driver.new(app,
|
75
|
-
browser: :remote,
|
76
|
-
url: "http://#{ENV["SELENIUM_SERVER"]}:4444/wd/hub",
|
77
|
-
desired_capabilities: caps)
|
78
|
-
end
|
79
|
-
else
|
80
|
-
raise "ERROR: Browser: #{browser} is not supported"
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
def register_selenium_local_driver(browser)
|
30
|
+
begin
|
31
|
+
server_url = ENV["SELENIUM_SERVER"] || $selnium_server || 'http://localhost:4444/wd/hub'
|
85
32
|
Capybara.register_driver :selenium do |app|
|
86
|
-
|
87
|
-
when "firefox"
|
88
|
-
profile = Selenium::WebDriver::Firefox::Profile.new
|
89
|
-
profile['browser.download.folderList'] = 2
|
90
|
-
profile['browser.helperApps.neverAsk.saveToDisk'] = "text/csv,application/pdf,application/x-pdf,application/octet-stream"
|
91
|
-
profile["pdfjs.disabled"] = true
|
92
|
-
Capybara::Selenium::Driver.new(app, :browser => browser.to_sym, :profile => profile)
|
93
|
-
when "chrome"
|
94
|
-
prefs = {:download => {
|
95
|
-
:prompt_for_download => false
|
96
|
-
}}
|
97
|
-
args = []
|
98
|
-
args << "--test-type" #to fix the error of chrome "you are using an unsupported command-line flag ignore-certificate-errors"
|
99
|
-
Capybara::Selenium::Driver.new(app, :browser => browser.to_sym, :prefs => prefs, :args => args)
|
100
|
-
else
|
101
|
-
raise "ERROR: Browser: #{browser} is not supported"
|
102
|
-
end
|
33
|
+
Capybara::Selenium::Driver.new(app, browser: :remote, url: server_url, desired_capabilities: $capabilities)
|
103
34
|
end
|
35
|
+
rescue StandardError => e
|
36
|
+
raise "ERROR: #{e}"
|
104
37
|
end
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
#
|
118
|
-
#
|
119
|
-
#
|
120
|
-
#
|
121
|
-
#
|
122
|
-
# -
|
123
|
-
#
|
124
|
-
#
|
125
|
-
# - name
|
126
|
-
# - build
|
127
|
-
# - save_screenshot
|
38
|
+
# desired_caps = {
|
39
|
+
# :caps => {
|
40
|
+
# # The generated session will be visible to you only.
|
41
|
+
# :sessionName => 'Automation test session',
|
42
|
+
# :sessionDescription => '',
|
43
|
+
# :deviceOrientation => 'portrait',
|
44
|
+
# :captureScreenshots => true,
|
45
|
+
# :browserName => 'chrome',
|
46
|
+
# :deviceGroup => 'KOBITON',
|
47
|
+
# # For deviceName, platformVersion Kobiton supports wildcard
|
48
|
+
# # character *, with 3 formats: *text, text* and *text*
|
49
|
+
# # If there is no *, Kobiton will match the exact text provided
|
50
|
+
# :deviceName => 'LG X power',
|
51
|
+
# :platformName => 'Android',
|
52
|
+
# :platformVersion => '6.0.1'
|
53
|
+
# },
|
54
|
+
# :appium_lib => {
|
55
|
+
# :server_url => 'https://anhpham2710:ea534084-f060-423c-8097-bee633d131fb@api.kobiton.com/wd/hub'
|
56
|
+
# }
|
57
|
+
# }
|
@@ -9,14 +9,14 @@ Before do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
After do |scenario|
|
12
|
-
if ENV['save_screenshot'] == "true"
|
13
|
-
file_name = 'failed_%s.png' % rand(1000).to_s
|
14
|
-
page.save_screenshot($screenshot+file_name) if scenario.failed?
|
12
|
+
# if ENV['save_screenshot'] == "true"
|
13
|
+
# file_name = 'failed_%s.png' % rand(1000).to_s
|
14
|
+
# page.save_screenshot($screenshot+file_name) if scenario.failed?
|
15
15
|
begin
|
16
16
|
Capybara.page.driver.quit
|
17
17
|
Capybara.send(:session_pool).delete_if { |key, value| key =~ /selenium/i }
|
18
18
|
rescue StandardError => myStandardError
|
19
19
|
raise "\n>>> Error: #{myStandardError}"
|
20
20
|
end
|
21
|
-
end
|
21
|
+
# end
|
22
22
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
$maximize_browser = true
|
2
|
+
$wait_time = 10
|
3
|
+
$print_log = true
|
4
|
+
$record_video = false
|
5
|
+
$default_browser = 'chrome'
|
6
|
+
$selenium_platform = 'LINUX'
|
7
|
+
$selnium_server = 'http://localhost:4444/wd/hub'
|
8
|
+
$capabilities = Selenium::WebDriver::Remote::Capabilities.new
|
9
|
+
$capabilities['platform'] = ENV['SELENIUM_PLATFORM'] || $selenium_platform || 'ANY'
|
10
|
+
$capabilities['recordVideo'] = ENV["recordVideo"] || $record_video || false
|
11
|
+
$capabilities['name'] = ENV["name"] || 'INFOdation Test Management System'
|
12
|
+
$capabilities['browserName'] = ENV['SELENIUM_BROWSER'] || $default_browser || 'chrome'
|
13
|
+
$capabilities['version'] = ENV['SELENIUM_VERSION'] if ENV['SELENIUM_VERSION']
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Ifd_Automation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: '2.9'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anh Pham
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: selenium-webdriver
|
@@ -204,22 +204,16 @@ dependencies:
|
|
204
204
|
name: rspec
|
205
205
|
requirement: !ruby/object:Gem::Requirement
|
206
206
|
requirements:
|
207
|
-
- - "~>"
|
208
|
-
- !ruby/object:Gem::Version
|
209
|
-
version: 3.7.0
|
210
207
|
- - ">="
|
211
208
|
- !ruby/object:Gem::Version
|
212
|
-
version:
|
209
|
+
version: '0'
|
213
210
|
type: :runtime
|
214
211
|
prerelease: false
|
215
212
|
version_requirements: !ruby/object:Gem::Requirement
|
216
213
|
requirements:
|
217
|
-
- - "~>"
|
218
|
-
- !ruby/object:Gem::Version
|
219
|
-
version: 3.7.0
|
220
214
|
- - ">="
|
221
215
|
- !ruby/object:Gem::Version
|
222
|
-
version:
|
216
|
+
version: '0'
|
223
217
|
- !ruby/object:Gem::Dependency
|
224
218
|
name: parallel_tests
|
225
219
|
requirement: !ruby/object:Gem::Requirement
|
@@ -240,6 +234,20 @@ dependencies:
|
|
240
234
|
- - ">="
|
241
235
|
- !ruby/object:Gem::Version
|
242
236
|
version: 2.7.1
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: cucumber_priority
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
type: :runtime
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
243
251
|
description: Behavior driven development (BDD) approach to write automation test script
|
244
252
|
to test GUI, RESTful, SOAP, Database, eMail.
|
245
253
|
email:
|
@@ -256,9 +264,17 @@ files:
|
|
256
264
|
- bin/helper.rb
|
257
265
|
- bin/setup
|
258
266
|
- lib/Ifd_Automation.rb
|
267
|
+
- lib/Ifd_Automation/REST_steps.rb
|
268
|
+
- lib/Ifd_Automation/SOAP_steps.rb
|
259
269
|
- lib/Ifd_Automation/all_steps.rb
|
270
|
+
- lib/Ifd_Automation/database_steps.rb
|
271
|
+
- lib/Ifd_Automation/dynamic_store_value_steps.rb
|
272
|
+
- lib/Ifd_Automation/email_steps.rb
|
273
|
+
- lib/Ifd_Automation/file_steps.rb
|
260
274
|
- lib/Ifd_Automation/require_libs.rb
|
275
|
+
- lib/Ifd_Automation/ssh_steps.rb
|
261
276
|
- lib/Ifd_Automation/version.rb
|
277
|
+
- lib/Ifd_Automation/web_steps.rb
|
262
278
|
- lib/helper/assertion_helper.rb
|
263
279
|
- lib/helper/auto_util.rb
|
264
280
|
- lib/helper/database_helper.rb
|
@@ -267,28 +283,19 @@ files:
|
|
267
283
|
- lib/helper/rest_helper.rb
|
268
284
|
- lib/helper/soap_helper.rb
|
269
285
|
- lib/helper/ssh_helper.rb
|
286
|
+
- lib/helper/step_fallback.rb
|
287
|
+
- lib/helper/tolerance_for_selenium_sync_issues.rb
|
270
288
|
- lib/helper/web_steps_helper.rb
|
271
|
-
- project/Dockerfile
|
272
289
|
- project/Gemfile
|
273
290
|
- project/README.md
|
274
291
|
- project/cucumber.yml
|
275
|
-
- project/docker-compose.yml
|
276
|
-
- project/features/Screenshot/sample.jpg
|
277
292
|
- project/features/TestData/globalData.yml
|
278
293
|
- project/features/TestSuite/WebGUI.feature
|
279
|
-
- project/features/step_definitions/
|
280
|
-
- project/features/step_definitions/IFD_Libraries/SOAP_steps.rb
|
281
|
-
- project/features/step_definitions/IFD_Libraries/database_steps.rb
|
282
|
-
- project/features/step_definitions/IFD_Libraries/dynamic_store_value_steps.rb
|
283
|
-
- project/features/step_definitions/IFD_Libraries/email_steps.rb
|
284
|
-
- project/features/step_definitions/IFD_Libraries/file_steps.rb
|
285
|
-
- project/features/step_definitions/IFD_Libraries/ssh_steps.rb
|
286
|
-
- project/features/step_definitions/IFD_Libraries/web_steps.rb
|
287
|
-
- project/features/step_definitions/lib_steps/actionwords.rb
|
288
|
-
- project/features/step_definitions/lib_steps/steps.rb
|
294
|
+
- project/features/step_definitions/lib_steps/steps_definition.rb
|
289
295
|
- project/features/step_definitions/repositories/project_object.yml
|
290
296
|
- project/features/support/env.rb
|
291
297
|
- project/features/support/hooks.rb
|
298
|
+
- project/features/support/project_config.rb
|
292
299
|
homepage: http://rubygems.org/gems/ifd_automation
|
293
300
|
licenses:
|
294
301
|
- MIT
|
data/project/Dockerfile
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
FROM ruby:2.3.1
|
2
|
-
|
3
|
-
MAINTAINER anhpham@infodation.vn
|
4
|
-
RUN apt-get -qq update
|
5
|
-
RUN mkdir /home/temp
|
6
|
-
WORKDIR /home/temp
|
7
|
-
RUN set -ex \
|
8
|
-
&& wget -O freetds-1.00.21.tar.gz "http://www.freetds.org/files/stable/freetds-1.00.21.tar.gz" \
|
9
|
-
&& tar -xzf freetds-1.00.21.tar.gz \
|
10
|
-
&& cd freetds-1.00.21 \
|
11
|
-
&& ./configure \
|
12
|
-
&& make \
|
13
|
-
&& make install
|
14
|
-
ENV APP_HOME /home/automation
|
15
|
-
RUN mkdir -p $APP_HOME
|
16
|
-
RUN chmod -R 777 $APP_HOME
|
17
|
-
COPY Ifd_Automation-2.7.gem $APP_HOME
|
18
|
-
WORKDIR $APP_HOME
|
19
|
-
RUN gem install Ifd_Automation-2.7.gem
|
20
|
-
|
data/project/docker-compose.yml
DELETED
Binary file
|
@@ -1,98 +0,0 @@
|
|
1
|
-
|
2
|
-
# Navigate to a particular page
|
3
|
-
Given(/^I am on the "([^"]*)" page$/) do |url|
|
4
|
-
url = Utils.check_dynamic_value(url)
|
5
|
-
execute_openbrowser(url)
|
6
|
-
end
|
7
|
-
|
8
|
-
# # Wait for the specific time
|
9
|
-
When /^I wait for (\d+) seconds$/ do |second|
|
10
|
-
sleep(second.to_i)
|
11
|
-
end
|
12
|
-
|
13
|
-
# Finds a button or link by id, text or value and clicks it
|
14
|
-
And /^I click on "([^\"]*)"$/ do |object|
|
15
|
-
execute_click(object)
|
16
|
-
end
|
17
|
-
|
18
|
-
# double click on web element
|
19
|
-
Then /^I double click on element "(.*?)"$/ do |element|
|
20
|
-
double_click(element)
|
21
|
-
end
|
22
|
-
|
23
|
-
# Fill in a text box or text area with a value
|
24
|
-
And /^I set text on "(.*?)" with "(.*?)"$/ do |object, text|
|
25
|
-
text = Utils.check_dynamic_value text
|
26
|
-
execute_settext(object, text)
|
27
|
-
end
|
28
|
-
|
29
|
-
# select option
|
30
|
-
And /^I select option on "(.*?)" with "(.*?)"$/ do |object, text|
|
31
|
-
execute_select(object, text)
|
32
|
-
end
|
33
|
-
|
34
|
-
|
35
|
-
# step to maximize browser
|
36
|
-
Then(/^I maximize browser window$/) do
|
37
|
-
maximize_browser
|
38
|
-
end
|
39
|
-
|
40
|
-
Then /^Capture a screenshot as "(.*)"$/ do |name|
|
41
|
-
file_path = $test_data_dir + name.downcase
|
42
|
-
page.save_screenshot(file_path)
|
43
|
-
end
|
44
|
-
|
45
|
-
Then(/^I switch to window having title "(.*?)"$/) do |window_title|
|
46
|
-
switch_to_window_by_title window_title
|
47
|
-
end
|
48
|
-
|
49
|
-
# steps to scroll web page to top or end
|
50
|
-
Then(/^I scroll to (top|end) of page$/) do |to|
|
51
|
-
scroll_page(to)
|
52
|
-
end
|
53
|
-
|
54
|
-
# check property for object
|
55
|
-
Then /^I check property "(.*?)" with "(.*?)" has( | not)? value "(.*?)"$/ do |object, property, negate, value|
|
56
|
-
value = Utils.bind_with_dyn_vars value
|
57
|
-
execute_checkproperty(object, property, negate, value)
|
58
|
-
end
|
59
|
-
|
60
|
-
# step to assert javascript pop-up alert text
|
61
|
-
Then(/^I should see alert text as "(.*?)"$/) do |actual_value|
|
62
|
-
check_alert_text(actual_value)
|
63
|
-
end
|
64
|
-
|
65
|
-
Given /^I move mouse to element "(.*)" and click$/ do |object|
|
66
|
-
execute_mousehoverandclick(object)
|
67
|
-
end
|
68
|
-
|
69
|
-
And /^remove attribute "(.*)" on object "(.*)"$/ do |attr, object|
|
70
|
-
remove_element_attribute object, attr
|
71
|
-
end
|
72
|
-
|
73
|
-
# set state for check box, combo box
|
74
|
-
And /^I set state on "(.*?)" with "(.*?)"$/ do |object, state|
|
75
|
-
execute_setstate(object, state)
|
76
|
-
end
|
77
|
-
|
78
|
-
And /I resize window screen to "(.*)","(.*)"/ do |x,y|
|
79
|
-
resize_window_screen(x,y)
|
80
|
-
end
|
81
|
-
|
82
|
-
And /I verify object "(.*)" with "(.*)" has value "(.*)"/ do |object,style,expected_value|
|
83
|
-
actual_value = get_computed_style(object,style)
|
84
|
-
IFD_Assertion.assert_string_equal(expected_value,actual_value)
|
85
|
-
end
|
86
|
-
|
87
|
-
Then /^I should( not)? see page title as (.*)$/ do |present, title|
|
88
|
-
check_title(title, present.empty?)
|
89
|
-
end
|
90
|
-
|
91
|
-
And /I move mouse to element "(.*)" and choose item "(.*)" then click/ do |var, element|
|
92
|
-
movemouseandclick(var, element)
|
93
|
-
end
|
94
|
-
|
95
|
-
And /I hold element "(.*)" and move from location x "(.*)" to y "(.*)"$/ do |el, x, y|
|
96
|
-
drag_drop el, x, y
|
97
|
-
end
|
98
|
-
|