Ifd_Automation 2.8.2 → 2.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/bin/documentation_generator.rb +0 -0
  3. data/bin/generate.rb +0 -6
  4. data/bin/helper.rb +0 -0
  5. data/lib/Ifd_Automation.rb +1 -0
  6. data/{project/features/step_definitions/IFD_Libraries → lib/Ifd_Automation}/REST_steps.rb +0 -0
  7. data/{project/features/step_definitions/IFD_Libraries → lib/Ifd_Automation}/SOAP_steps.rb +0 -0
  8. data/lib/Ifd_Automation/all_steps.rb +0 -0
  9. data/{project/features/step_definitions/IFD_Libraries → lib/Ifd_Automation}/database_steps.rb +1 -1
  10. data/{project/features/step_definitions/IFD_Libraries → lib/Ifd_Automation}/dynamic_store_value_steps.rb +0 -0
  11. data/{project/features/step_definitions/IFD_Libraries → lib/Ifd_Automation}/email_steps.rb +0 -0
  12. data/{project/features/step_definitions/IFD_Libraries → lib/Ifd_Automation}/file_steps.rb +0 -0
  13. data/lib/Ifd_Automation/require_libs.rb +0 -0
  14. data/{project/features/step_definitions/IFD_Libraries → lib/Ifd_Automation}/ssh_steps.rb +0 -0
  15. data/lib/Ifd_Automation/version.rb +1 -1
  16. data/lib/Ifd_Automation/web_steps.rb +109 -0
  17. data/lib/helper/assertion_helper.rb +0 -0
  18. data/lib/helper/auto_util.rb +0 -0
  19. data/lib/helper/database_helper.rb +0 -0
  20. data/lib/helper/file_helper.rb +0 -0
  21. data/lib/helper/mail_helper.rb +0 -0
  22. data/lib/helper/rest_helper.rb +0 -0
  23. data/lib/helper/soap_helper.rb +0 -0
  24. data/lib/helper/ssh_helper.rb +1 -1
  25. data/lib/helper/step_fallback.rb +13 -0
  26. data/lib/helper/tolerance_for_selenium_sync_issues.rb +72 -0
  27. data/lib/helper/web_steps_helper.rb +539 -325
  28. data/project/Gemfile +0 -0
  29. data/project/README.md +5 -21
  30. data/project/cucumber.yml +3 -3
  31. data/project/features/TestData/globalData.yml +0 -0
  32. data/project/features/TestSuite/WebGUI.feature +3 -4
  33. data/project/features/step_definitions/lib_steps/steps_definition.rb +3 -0
  34. data/project/features/step_definitions/repositories/project_object.yml +1 -2
  35. data/project/features/support/env.rb +30 -100
  36. data/project/features/support/hooks.rb +4 -4
  37. data/project/features/support/project_config.rb +13 -0
  38. metadata +30 -23
  39. data/project/Dockerfile +0 -20
  40. data/project/docker-compose.yml +0 -7
  41. data/project/features/Screenshot/sample.jpg +0 -0
  42. data/project/features/step_definitions/IFD_Libraries/web_steps.rb +0 -98
  43. data/project/features/step_definitions/lib_steps/actionwords.rb +0 -9
  44. 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 "cross-platform": it allows you to write tests against multiple platforms (Linux, Windows, MacOS) on multiple browsers (chrome, firefox ...) using the same API.
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
- <% remote = "SELENIUM=remote" %>
3
- remote_chrome: BROWSER=chrome <%= remote %>
4
- remote_firefox: BROWSER=firefox <%= remote %>
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,5 +1,4 @@
1
- Feature: Example feature for GUI testingz
2
-
3
- Scenario: testing case for web interaction
4
- Given I am on the "params='login_page'" page
1
+ Feature: Jira ticket name
5
2
 
3
+ Scenario: login to system with valid account
4
+ Given I open the homepage in Sportpartner
@@ -0,0 +1,3 @@
1
+ And /I test/ do
2
+
3
+ end
@@ -1,2 +1 @@
1
- textbox_username: {css_selector: '#userField'}
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
- if ENV["BROWSER"].nil?
18
- raise "ERROR***: MISSING BROWSER... Supported Browsers: Chrome/Firefox. Example: 'BROWSER=chrome'"
19
- end
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
- def register_selenium_remote_driver(browser)
56
- case browser
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
- case browser
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
- case ENV["SELENIUM"]
107
- when "remote"
108
- if ENV["SELENIUM_SERVER"].nil?
109
- raise "ERROR***: MISSING SELENIUM_SERVER IP... Example: 'SELENIUM_SERVER=localhost'"
110
- else
111
- register_selenium_remote_driver($_CFWEB['Default Browser'])
112
- end
113
- else
114
- register_selenium_local_driver($_CFWEB['Default Browser'])
115
- end
116
-
117
- # Available execution environment variables
118
- # - SELENIUM = remote
119
- # - SELENIUM_SERVER = 10.0.0.1
120
- # - BROWSER = "chrome"/"firefox"
121
- # - wait_time = 30
122
- # - print_log = true/false
123
- # - maximize_browser = true/false
124
- # - recordVideo
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.8.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-02-20 00:00:00.000000000 Z
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: 3.7.0
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: 3.7.0
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/IFD_Libraries/REST_steps.rb
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
-
@@ -1,7 +0,0 @@
1
- version: '2'
2
- services:
3
- automation:
4
- build: .
5
- command: tail -F anything
6
- volumes:
7
- - ./:/home/automation
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
-