Ifd_Automation 2.8.2 → 2.9
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
|