testcentricity_web 4.1.10 → 4.2.6
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/CHANGELOG.md +75 -1
- data/README.md +73 -35
- data/lib/testcentricity_web/data_objects/environment.rb +0 -1
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/web_core/page_objects_helper.rb +39 -2
- data/lib/testcentricity_web/web_core/webdriver_helper.rb +67 -61
- data/lib/testcentricity_web/web_elements/media.rb +108 -0
- data/lib/testcentricity_web/web_elements/textfield.rb +28 -0
- data/lib/testcentricity_web/web_elements/ui_elements_helper.rb +39 -1
- metadata +6 -150
- data/.gitignore +0 -39
- data/.idea/.name +0 -1
- data/.idea/encodings.xml +0 -6
- data/.idea/misc.xml +0 -4
- data/.idea/modules.xml +0 -8
- data/.idea/vcs.xml +0 -7
- data/.rspec +0 -4
- data/.rubocop.yml +0 -38
- data/.ruby-version +0 -1
- data/.simplecov +0 -9
- data/CODE_OF_CONDUCT.md +0 -13
- data/Gemfile +0 -6
- data/Rakefile +0 -115
- data/config/cucumber.yml +0 -171
- data/config/locales/en-US.yml +0 -56
- data/config/test_data/LOCAL_data.json +0 -15
- data/config/test_data/LOCAL_data.xls +0 -0
- data/config/test_data/LOCAL_data.yml +0 -11
- data/config/test_data/data.json +0 -25
- data/config/test_data/data.xls +0 -0
- data/config/test_data/data.yml +0 -20
- data/docker-compose.yml +0 -48
- data/features/basic_form_page_css.feature +0 -54
- data/features/basic_form_page_xpath.feature +0 -26
- data/features/custom_controls.feature +0 -29
- data/features/media_players.feature +0 -67
- data/features/step_definitions/generic_steps.rb.rb +0 -124
- data/features/step_definitions/media_steps.rb +0 -30
- data/features/support/data/form_data.rb +0 -43
- data/features/support/env.rb +0 -53
- data/features/support/hooks.rb +0 -270
- data/features/support/pages/base_test_page.rb +0 -22
- data/features/support/pages/basic_css_form_page.rb +0 -57
- data/features/support/pages/basic_form_page.rb +0 -500
- data/features/support/pages/basic_xpath_form_page.rb +0 -58
- data/features/support/pages/custom_controls_page.rb +0 -263
- data/features/support/pages/indexed_sections_page.rb +0 -57
- data/features/support/pages/media_test_page.rb +0 -207
- data/features/support/sections/header_nav.rb +0 -48
- data/features/support/sections/product_card.rb +0 -39
- data/features/support/world_data.rb +0 -12
- data/features/support/world_pages.rb +0 -18
- data/reports/.keep +0 -1
- data/spec/fixtures/page_object.rb +0 -22
- data/spec/fixtures/section_object.rb +0 -21
- data/spec/spec_helper.rb +0 -33
- data/spec/testcentricity_web/browser_spec.rb +0 -41
- data/spec/testcentricity_web/elements/audio_spec.rb +0 -68
- data/spec/testcentricity_web/elements/button_spec.rb +0 -18
- data/spec/testcentricity_web/elements/checkbox_spec.rb +0 -33
- data/spec/testcentricity_web/elements/file_field_spec.rb +0 -13
- data/spec/testcentricity_web/elements/image_spec.rb +0 -33
- data/spec/testcentricity_web/elements/label_spec.rb +0 -18
- data/spec/testcentricity_web/elements/link_spec.rb +0 -23
- data/spec/testcentricity_web/elements/list_spec.rb +0 -13
- data/spec/testcentricity_web/elements/radio_spec.rb +0 -28
- data/spec/testcentricity_web/elements/ui_element_spec.rb +0 -125
- data/spec/testcentricity_web/elements/video_spec.rb +0 -68
- data/spec/testcentricity_web/helper_specs/object_helpers_spec.rb +0 -39
- data/spec/testcentricity_web/helper_specs/string_helpers_spec.rb +0 -49
- data/spec/testcentricity_web/page_object_spec.rb +0 -90
- data/spec/testcentricity_web/section_object_spec.rb +0 -72
- data/spec/testcentricity_web/version_spec.rb +0 -7
- data/spec/testcentricity_web/webdriver_connect/grid_webdriver_spec.rb +0 -72
- data/spec/testcentricity_web/webdriver_connect/local_webdriver_spec.rb +0 -86
- data/spec/testcentricity_web/webdriver_connect/mobile_webdriver_spec.rb +0 -65
- data/test_site/basic_test_page.html +0 -269
- data/test_site/chosen/chosen-sprite.png +0 -0
- data/test_site/chosen/chosen-sprite@2x.png +0 -0
- data/test_site/chosen/chosen.css +0 -496
- data/test_site/chosen/chosen.jquery.js +0 -1359
- data/test_site/chosen/chosen.jquery.min.js +0 -3
- data/test_site/chosen/chosen.min.css +0 -11
- data/test_site/chosen/chosen.proto.js +0 -1399
- data/test_site/chosen/chosen.proto.min.js +0 -3
- data/test_site/chosen/composer.json +0 -36
- data/test_site/custom_controls_page.html +0 -629
- data/test_site/docsupport/chosen.png +0 -0
- data/test_site/docsupport/init.js +0 -11
- data/test_site/docsupport/init.proto.js +0 -16
- data/test_site/docsupport/jquery-1.12.4.min.js +0 -5
- data/test_site/docsupport/jquery-3.2.1.min.js +0 -4
- data/test_site/docsupport/oss-credit.png +0 -0
- data/test_site/docsupport/prism.css +0 -108
- data/test_site/docsupport/prism.js +0 -9
- data/test_site/docsupport/prototype-1.7.0.0.js +0 -6082
- data/test_site/docsupport/style.css +0 -219
- data/test_site/images/Blouse_Black.jpg +0 -0
- data/test_site/images/Granny.jpg +0 -0
- data/test_site/images/Printed_Dress.jpg +0 -0
- data/test_site/images/T-shirt.jpg +0 -0
- data/test_site/images/Wilder.jpg +0 -0
- data/test_site/images/You_Betcha.jpg +0 -0
- data/test_site/images/jeans3.jpg +0 -0
- data/test_site/indexed_sections_page.html +0 -215
- data/test_site/media/MIB2-subtitles-pt-BR.vtt +0 -49
- data/test_site/media/MIB2.mp4 +0 -0
- data/test_site/media/MP4_small.mp4 +0 -0
- data/test_site/media/MPS_sample.mp3 +0 -0
- data/test_site/media/bbc_scotland_report.mp3 +0 -0
- data/test_site/media/count_and_bars.mp4 +0 -0
- data/test_site/media_page.html +0 -86
- data/testcentricity_web.gemspec +0 -59
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
describe TestCentricity::PageObject, required: true do
|
|
4
|
-
before :context do
|
|
5
|
-
@test_page = TestPage.new
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
context 'page object traits' do
|
|
9
|
-
it 'returns page name' do
|
|
10
|
-
expect(@test_page.page_name).to eq('Basic Test Page')
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
it 'returns page url' do
|
|
14
|
-
expect(@test_page.page_url).to eq('/basic_test_page.html')
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
it 'returns page locator' do
|
|
18
|
-
expect(@test_page.page_locator).to eq('form#HTMLFormElements')
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it 'determines if page is secure' do
|
|
22
|
-
allow(@test_page).to receive(:secure?).and_return(false)
|
|
23
|
-
expect(@test_page.secure?).to eq(false)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
it 'should display the title of the page' do
|
|
27
|
-
allow(@test_page).to receive(:title).and_return('I am the title of a page')
|
|
28
|
-
expect(@test_page.title).to eql 'I am the title of a page'
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
it 'determines if page is secure' do
|
|
32
|
-
allow(@test_page).to receive(:secure?).and_return(false)
|
|
33
|
-
expect(@test_page.secure?).to eq(false)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
it 'responds to open_portal' do
|
|
37
|
-
expect(@test_page).to respond_to(:open_portal)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
it 'responds to load_page' do
|
|
41
|
-
expect(@test_page).to respond_to(:load_page)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
it 'responds to verify_page_exists' do
|
|
45
|
-
expect(@test_page).to respond_to(:verify_page_exists)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
it 'responds to exists?' do
|
|
49
|
-
expect(@test_page).to respond_to(:exists?)
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
context 'page object with UI elements' do
|
|
54
|
-
it 'responds to element' do
|
|
55
|
-
expect(@test_page).to respond_to(:element1)
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
it 'responds to button' do
|
|
59
|
-
expect(@test_page).to respond_to(:button1)
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
it 'responds to textfield' do
|
|
63
|
-
expect(@test_page).to respond_to(:field1)
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
it 'responds to link' do
|
|
67
|
-
expect(@test_page).to respond_to(:link1)
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
it 'responds to range' do
|
|
71
|
-
expect(@test_page).to respond_to(:range1)
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
it 'responds to image' do
|
|
75
|
-
expect(@test_page).to respond_to(:image1)
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
it 'responds to radio' do
|
|
79
|
-
expect(@test_page).to respond_to(:radio1)
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
it 'responds to checkbox' do
|
|
83
|
-
expect(@test_page).to respond_to(:check1)
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
it 'responds to section' do
|
|
87
|
-
expect(@test_page).to respond_to(:section1)
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
end
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
describe TestCentricity::PageSection, required: true do
|
|
4
|
-
before :context do
|
|
5
|
-
@test_page = TestPage.new
|
|
6
|
-
@test_section = @test_page.section1
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
context 'section object traits' do
|
|
10
|
-
it 'returns section name' do
|
|
11
|
-
expect(@test_section.section_name).to eq('Basic Test Section')
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
it 'returns section locator' do
|
|
15
|
-
expect(@test_section.get_locator).to eq('div#section')
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
it 'returns class' do
|
|
19
|
-
expect(@test_section.class).to eql TestSection
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
it 'returns css locator type' do
|
|
23
|
-
expect(@test_section.get_locator_type).to eql :css
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
it 'registers with type section' do
|
|
27
|
-
expect(@test_section.get_object_type).to eql :section
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
it 'returns parent list object' do
|
|
31
|
-
expect(@test_section.get_parent_list).to eql nil
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
context 'section object with UI elements' do
|
|
36
|
-
it 'responds to element' do
|
|
37
|
-
expect(@test_section).to respond_to(:element1)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
it 'responds to button' do
|
|
41
|
-
expect(@test_section).to respond_to(:button1)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
it 'responds to textfield' do
|
|
45
|
-
expect(@test_section).to respond_to(:field1)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
it 'responds to link' do
|
|
49
|
-
expect(@test_section).to respond_to(:link1)
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
it 'responds to range' do
|
|
53
|
-
expect(@test_section).to respond_to(:range1)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
it 'responds to image' do
|
|
57
|
-
expect(@test_section).to respond_to(:image1)
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
it 'responds to radio' do
|
|
61
|
-
expect(@test_section).to respond_to(:radio1)
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
it 'responds to checkbox' do
|
|
65
|
-
expect(@test_section).to respond_to(:check1)
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
it 'responds to section' do
|
|
69
|
-
expect(@test_section).to respond_to(:section2)
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
describe TestCentricity::WebDriverConnect, grid: true do
|
|
4
|
-
before(:context) do
|
|
5
|
-
# instantiate remote test environment
|
|
6
|
-
@environs ||= EnvironData
|
|
7
|
-
@environs.find_environ('REMOTE', :yaml)
|
|
8
|
-
ENV['SELENIUM'] = 'remote'
|
|
9
|
-
endpoint = 'http://localhost:4444/wd/hub'
|
|
10
|
-
ENV['REMOTE_ENDPOINT'] = endpoint
|
|
11
|
-
# wait for Dockerized Selenium grid to be running
|
|
12
|
-
20.downto(0) do |interval|
|
|
13
|
-
begin
|
|
14
|
-
response = HTTParty.get("#{endpoint}/status")
|
|
15
|
-
break if response.body.include?('Selenium Grid ready')
|
|
16
|
-
rescue
|
|
17
|
-
if interval == 0
|
|
18
|
-
raise 'Selenium Grid is not running.'
|
|
19
|
-
else
|
|
20
|
-
sleep(1)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
context 'grid web browser instances' do
|
|
27
|
-
it 'connects to a grid hosted Firefox browser' do
|
|
28
|
-
ENV['WEB_BROWSER'] = 'firefox'
|
|
29
|
-
WebDriverConnect.initialize_web_driver
|
|
30
|
-
verify_grid_browser(browser = :firefox, platform = :desktop)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
it 'connects to a grid hosted Chrome browser' do
|
|
34
|
-
ENV['WEB_BROWSER'] = 'chrome'
|
|
35
|
-
WebDriverConnect.initialize_web_driver
|
|
36
|
-
Browsers.suppress_js_leave_page_modal
|
|
37
|
-
verify_grid_browser(browser = :chrome, platform = :desktop)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
it 'connects to a grid hosted Edge browser' do
|
|
41
|
-
ENV['WEB_BROWSER'] = 'edge'
|
|
42
|
-
WebDriverConnect.initialize_web_driver
|
|
43
|
-
Browsers.suppress_js_alerts
|
|
44
|
-
verify_grid_browser(browser = :edge, platform = :desktop)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
it 'connects to a grid hosted emulated mobile web browser' do
|
|
48
|
-
ENV['WEB_BROWSER'] = 'ipad_pro_12_9'
|
|
49
|
-
ENV['HOST_BROWSER'] = 'chrome'
|
|
50
|
-
ENV['ORIENTATION'] = 'portrait'
|
|
51
|
-
WebDriverConnect.initialize_web_driver
|
|
52
|
-
Browsers.set_device_orientation('landscape')
|
|
53
|
-
verify_grid_browser(browser = :ipad_pro_12_9, platform = :mobile)
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
after(:each) do
|
|
58
|
-
$server.stop if Environ.driver == :appium && $server.running?
|
|
59
|
-
Capybara.current_session.quit
|
|
60
|
-
Environ.session_state = :quit
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def verify_grid_browser(browser, platform)
|
|
64
|
-
expect(Environ.browser).to eq(browser)
|
|
65
|
-
expect(Environ.platform).to eq(platform)
|
|
66
|
-
expect(Environ.headless).to eq(false)
|
|
67
|
-
expect(Environ.session_state).to eq(:running)
|
|
68
|
-
expect(Environ.driver).to eq(:webdriver)
|
|
69
|
-
expect(Environ.device).to eq(:web)
|
|
70
|
-
expect(Environ.grid).to eq(:selenium_grid)
|
|
71
|
-
end
|
|
72
|
-
end
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
describe TestCentricity::WebDriverConnect, required: true do
|
|
4
|
-
before(:context) do
|
|
5
|
-
# instantiate local test environment
|
|
6
|
-
@environs ||= EnvironData
|
|
7
|
-
@environs.find_environ('LOCAL', :yaml)
|
|
8
|
-
ENV['SELENIUM'] = ''
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
context 'local web browser instances' do
|
|
12
|
-
it 'connects to a local Firefox browser' do
|
|
13
|
-
ENV['WEB_BROWSER'] = 'firefox'
|
|
14
|
-
WebDriverConnect.initialize_web_driver
|
|
15
|
-
verify_local_browser(browser = :firefox, platform = :desktop, headless = false)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
it 'connects to a local Safari browser' do
|
|
19
|
-
ENV['WEB_BROWSER'] = 'safari'
|
|
20
|
-
WebDriverConnect.initialize_web_driver
|
|
21
|
-
verify_local_browser(browser = :safari, platform = :desktop, headless = false)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
it 'connects to a local Chrome browser' do
|
|
25
|
-
ENV['WEB_BROWSER'] = 'chrome'
|
|
26
|
-
WebDriverConnect.initialize_web_driver
|
|
27
|
-
Browsers.suppress_js_leave_page_modal
|
|
28
|
-
verify_local_browser(browser = :chrome, platform = :desktop, headless = false)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
it 'connects to a local Edge browser' do
|
|
32
|
-
ENV['WEB_BROWSER'] = 'edge'
|
|
33
|
-
WebDriverConnect.initialize_web_driver
|
|
34
|
-
Browsers.suppress_js_alerts
|
|
35
|
-
verify_local_browser(browser = :edge, platform = :desktop, headless = false)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
it 'connects to a local emulated mobile web browser' do
|
|
39
|
-
ENV['WEB_BROWSER'] = 'ipad_pro_12_9'
|
|
40
|
-
ENV['HOST_BROWSER'] = 'chrome'
|
|
41
|
-
ENV['ORIENTATION'] = 'portrait'
|
|
42
|
-
WebDriverConnect.initialize_web_driver
|
|
43
|
-
Browsers.set_device_orientation('landscape')
|
|
44
|
-
verify_local_browser(browser = :ipad_pro_12_9, platform = :mobile, headless = false)
|
|
45
|
-
expect(Environ.browser_size).to eq([1366, 1024])
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
context 'local headless browser instances' do
|
|
50
|
-
it 'connects to a local headless Chrome browser' do
|
|
51
|
-
ENV['WEB_BROWSER'] = 'chrome_headless'
|
|
52
|
-
WebDriverConnect.initialize_web_driver
|
|
53
|
-
Browsers.maximize_browser
|
|
54
|
-
verify_local_browser(browser = :chrome_headless, platform = :desktop, headless = true)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
it 'connects to a local headless Edge browser' do
|
|
58
|
-
ENV['WEB_BROWSER'] = 'edge_headless'
|
|
59
|
-
WebDriverConnect.initialize_web_driver
|
|
60
|
-
Browsers.refresh_browser
|
|
61
|
-
verify_local_browser(browser = :edge_headless, platform = :desktop, headless = true)
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
it 'connects to a local headless Firefox browser' do
|
|
65
|
-
ENV['WEB_BROWSER'] = 'firefox_headless'
|
|
66
|
-
WebDriverConnect.initialize_web_driver
|
|
67
|
-
Browsers.delete_all_cookies
|
|
68
|
-
verify_local_browser(browser = :firefox_headless, platform = :desktop, headless = true)
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
after(:each) do
|
|
73
|
-
Capybara.current_session.quit
|
|
74
|
-
Environ.session_state = :quit
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
def verify_local_browser(browser, platform, headless)
|
|
78
|
-
expect(Environ.browser).to eq(browser)
|
|
79
|
-
expect(Environ.platform).to eq(platform)
|
|
80
|
-
expect(Environ.headless).to eq(headless)
|
|
81
|
-
expect(Environ.session_state).to eq(:running)
|
|
82
|
-
expect(Environ.driver).to eq(:webdriver)
|
|
83
|
-
expect(Environ.device).to eq(:web)
|
|
84
|
-
expect(Environ.is_web?).to eq(true)
|
|
85
|
-
end
|
|
86
|
-
end
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
describe TestCentricity::WebDriverConnect, mobile: true do
|
|
4
|
-
before(:context) do
|
|
5
|
-
# instantiate local test environment
|
|
6
|
-
@environs ||= EnvironData
|
|
7
|
-
@environs.find_environ('LOCAL', :yaml)
|
|
8
|
-
ENV['SELENIUM'] = ''
|
|
9
|
-
ENV['WEB_BROWSER'] = 'appium'
|
|
10
|
-
ENV['DEVICE_TYPE'] = 'tablet'
|
|
11
|
-
# start Appium server
|
|
12
|
-
$server = TestCentricity::AppiumServer.new
|
|
13
|
-
$server.start
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
context 'Mobile device simulator' do
|
|
17
|
-
it 'connects to iOS Simulator' do
|
|
18
|
-
ENV['AUTOMATION_ENGINE'] = 'XCUITest'
|
|
19
|
-
ENV['APP_PLATFORM_NAME'] = 'ios'
|
|
20
|
-
ENV['APP_BROWSER'] = 'Safari'
|
|
21
|
-
ENV['APP_VERSION'] = '15.4'
|
|
22
|
-
ENV['APP_DEVICE'] = 'iPad Pro (12.9-inch) (5th generation)'
|
|
23
|
-
WebDriverConnect.initialize_web_driver
|
|
24
|
-
expect(Environ.browser).to eq(:appium)
|
|
25
|
-
expect(Environ.platform).to eq(:mobile)
|
|
26
|
-
expect(Environ.headless).to eq(false)
|
|
27
|
-
expect(Environ.session_state).to eq(:running)
|
|
28
|
-
expect(Environ.driver).to eq(:appium)
|
|
29
|
-
expect(Environ.device).to eq(:simulator)
|
|
30
|
-
expect(Environ.device_name).to eq('iPad Pro (12.9-inch) (5th generation)')
|
|
31
|
-
expect(Environ.device_os).to eq(:ios)
|
|
32
|
-
expect(Environ.device_type).to eq(:tablet)
|
|
33
|
-
expect(Environ.device_os_version).to eq('15.4')
|
|
34
|
-
expect(Environ.is_ios?).to eq(true)
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it 'connects to Android Simulator' do
|
|
38
|
-
ENV['APP_PLATFORM_NAME'] = 'Android'
|
|
39
|
-
ENV['APP_BROWSER'] = 'Chrome'
|
|
40
|
-
ENV['APP_VERSION'] = '12.0'
|
|
41
|
-
ENV['APP_DEVICE'] = 'Pixel_C_API_31'
|
|
42
|
-
WebDriverConnect.initialize_web_driver
|
|
43
|
-
expect(Environ.browser).to eq(:appium)
|
|
44
|
-
expect(Environ.platform).to eq(:mobile)
|
|
45
|
-
expect(Environ.headless).to eq(false)
|
|
46
|
-
expect(Environ.session_state).to eq(:running)
|
|
47
|
-
expect(Environ.driver).to eq(:appium)
|
|
48
|
-
expect(Environ.device).to eq(:simulator)
|
|
49
|
-
expect(Environ.device_name).to eq('Pixel_C_API_31')
|
|
50
|
-
expect(Environ.device_os).to eq(:android)
|
|
51
|
-
expect(Environ.device_type).to eq(:tablet)
|
|
52
|
-
expect(Environ.device_os_version).to eq('12.0')
|
|
53
|
-
expect(Environ.is_android?).to eq(true)
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
after(:each) do
|
|
58
|
-
Capybara.current_session.quit
|
|
59
|
-
Environ.session_state = :quit
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
after(:context) do
|
|
63
|
-
$server.stop if Environ.driver == :appium && $server.running?
|
|
64
|
-
end
|
|
65
|
-
end
|
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<title>Basic HTML Form</title>
|
|
6
|
-
<style>
|
|
7
|
-
table {
|
|
8
|
-
font-family: arial, sans-serif;
|
|
9
|
-
font-size: 15px;
|
|
10
|
-
border-collapse: collapse;
|
|
11
|
-
width: 85%;
|
|
12
|
-
}
|
|
13
|
-
td, th {
|
|
14
|
-
border: 1px solid #dddddd;
|
|
15
|
-
text-align: left;
|
|
16
|
-
padding: 8px;
|
|
17
|
-
}
|
|
18
|
-
body {
|
|
19
|
-
margin: 0;
|
|
20
|
-
font-family: Arial, Helvetica, sans-serif;
|
|
21
|
-
}
|
|
22
|
-
.topnav {
|
|
23
|
-
overflow: hidden;
|
|
24
|
-
background-color: #333;
|
|
25
|
-
}
|
|
26
|
-
.topnav a {
|
|
27
|
-
float: left;
|
|
28
|
-
color: #f2f2f2;
|
|
29
|
-
text-align: center;
|
|
30
|
-
padding: 12px 14px;
|
|
31
|
-
text-decoration: none;
|
|
32
|
-
font-size: 15px;
|
|
33
|
-
}
|
|
34
|
-
.topnav a:hover {
|
|
35
|
-
background-color: #ddd;
|
|
36
|
-
color: black;
|
|
37
|
-
}
|
|
38
|
-
.topnav a.active {
|
|
39
|
-
background-color: #04AA6D;
|
|
40
|
-
color: white;
|
|
41
|
-
}
|
|
42
|
-
</style>
|
|
43
|
-
</head>
|
|
44
|
-
<body>
|
|
45
|
-
<div class="page-body">
|
|
46
|
-
<h2 id="header">Basic HTML Form</h2>
|
|
47
|
-
|
|
48
|
-
<div id="nav_bar" class="topnav">
|
|
49
|
-
<a id="form_link" class="active" href="#">Basic HTML Form</a>
|
|
50
|
-
<a id="media_link" href="media_page.html">Media</a>
|
|
51
|
-
<a id="indexed_sections_link" href="indexed_sections_page.html">Indexed Sections</a>
|
|
52
|
-
<a id="custom_controls_link" href="custom_controls_page.html">Custom Controls</a>
|
|
53
|
-
</div>
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
<div class="centered">
|
|
57
|
-
<form name="HTMLFormElements" id="HTMLFormElements">
|
|
58
|
-
<table border="1" cellpadding="5">
|
|
59
|
-
<tr>
|
|
60
|
-
<td>
|
|
61
|
-
<table>
|
|
62
|
-
<label id="inputs">Inputs:</label>
|
|
63
|
-
<tbody>
|
|
64
|
-
<tr>
|
|
65
|
-
<td>
|
|
66
|
-
<label for="username">Username:</label>
|
|
67
|
-
<input type="text" id="username" name="username" placeholder="User name" required>
|
|
68
|
-
</td>
|
|
69
|
-
<td>
|
|
70
|
-
<label for="password">Password:</label>
|
|
71
|
-
<input type="password" id="password" name="password" placeholder="Password" required>
|
|
72
|
-
</td>
|
|
73
|
-
<td>
|
|
74
|
-
<label for="maxlength">Max Length:</label>
|
|
75
|
-
<input type="text" id="maxlength" name="maxlength" placeholder="up to 64 characters" maxlength="64">
|
|
76
|
-
</td>
|
|
77
|
-
</tr>
|
|
78
|
-
<tr>
|
|
79
|
-
<td>
|
|
80
|
-
<label for="readonly">Read Only:</label>
|
|
81
|
-
<input type="text" id="readonly" name="readonly" value="I am a read only text field" readonly>
|
|
82
|
-
</td>
|
|
83
|
-
<td>
|
|
84
|
-
<label for="number-field">Number:</label>
|
|
85
|
-
<input id="number-field" type="number" name="number" min="10" max="1024" step="1" value="41">
|
|
86
|
-
</td>
|
|
87
|
-
<td>
|
|
88
|
-
<label for="date-picker">Date: </label>
|
|
89
|
-
<input id="date-picker" type="date" name="date" value="2022-05-23">
|
|
90
|
-
</td>
|
|
91
|
-
</tr>
|
|
92
|
-
<tr>
|
|
93
|
-
<td>
|
|
94
|
-
<label for="date-time-picker">Local date time:</label>
|
|
95
|
-
<input id="date-time-picker" type="datetime-local" name="datetime" value="2018-01-01T01:01">
|
|
96
|
-
</td>
|
|
97
|
-
<td>
|
|
98
|
-
<label for="email-field">Email: </label>
|
|
99
|
-
<input id="email-field" type="email" name="email" value="bob@mailinator.com">
|
|
100
|
-
</td>
|
|
101
|
-
<td>
|
|
102
|
-
<label for="month-field">Month: </label>
|
|
103
|
-
<input id="month-field" type="month" name="month" value="2022-09">
|
|
104
|
-
</td>
|
|
105
|
-
</tr>
|
|
106
|
-
<tr>
|
|
107
|
-
<td>
|
|
108
|
-
<label for="color-picker">Color: </label>
|
|
109
|
-
<input id="color-picker" type="color" name="color">
|
|
110
|
-
</td>
|
|
111
|
-
<td>
|
|
112
|
-
<label for="slider">Range: </label>
|
|
113
|
-
<input id="slider" type="range" name="slider" min="0" max="50">
|
|
114
|
-
</td>
|
|
115
|
-
<td>
|
|
116
|
-
</td>
|
|
117
|
-
</tr>
|
|
118
|
-
</tbody>
|
|
119
|
-
</table>
|
|
120
|
-
</td>
|
|
121
|
-
</tr>
|
|
122
|
-
|
|
123
|
-
<tr>
|
|
124
|
-
<td>
|
|
125
|
-
<label for="comments">TextArea:</label>
|
|
126
|
-
<textarea id="comments" name="comments" cols="80" rows="3"></textarea>
|
|
127
|
-
</td>
|
|
128
|
-
</tr>
|
|
129
|
-
|
|
130
|
-
<tr>
|
|
131
|
-
<td>
|
|
132
|
-
<label for="filename">Filename:</label>
|
|
133
|
-
<input type="file" id="filename" name="filename" size="35">
|
|
134
|
-
</td>
|
|
135
|
-
</tr>
|
|
136
|
-
|
|
137
|
-
<tr>
|
|
138
|
-
<td>
|
|
139
|
-
<label id="checkboxes">Checkbox Items:</label>
|
|
140
|
-
<input type="checkbox" id="check1" name="checkboxes[]" value="cb1" />Checkbox 1
|
|
141
|
-
<input type="checkbox" id="check2" name="checkboxes[]" value="cb2" />Checkbox 2
|
|
142
|
-
<input type="checkbox" id="check3" name="checkboxes[]" value="cb3" />Checkbox 3
|
|
143
|
-
<input type="checkbox" id="check4" name="checkboxes[]" value="cb4" disabled/>Checkbox 4
|
|
144
|
-
</td>
|
|
145
|
-
</tr>
|
|
146
|
-
|
|
147
|
-
<tr>
|
|
148
|
-
<td>
|
|
149
|
-
<label id="radios">Radio Items:</label>
|
|
150
|
-
<input type="radio" id="radio1" name="radioval" value="rd1" />radio 1
|
|
151
|
-
<input type="radio" id="radio2" name="radioval" value="rd2" />radio 2
|
|
152
|
-
<input type="radio" id="radio3" name="radioval" value="rd3" />radio 3
|
|
153
|
-
<input type="radio" id="radio4" name="radioval" value="rd4" disabled/>radio 4
|
|
154
|
-
</td>
|
|
155
|
-
</tr>
|
|
156
|
-
|
|
157
|
-
<tr>
|
|
158
|
-
<td>
|
|
159
|
-
<label for="multipleselect">Multiple Select Values:</label>
|
|
160
|
-
<select multiple="multiple" id="multipleselect" name="multipleselect" size="4">
|
|
161
|
-
<option value="ms1">Selection Item 1</option>
|
|
162
|
-
<option value="ms2">Selection Item 2</option>
|
|
163
|
-
<option value="ms3">Selection Item 3</option>
|
|
164
|
-
<option value="ms4">Selection Item 4</option>
|
|
165
|
-
</select>
|
|
166
|
-
</td>
|
|
167
|
-
</tr>
|
|
168
|
-
|
|
169
|
-
<tr>
|
|
170
|
-
<td>
|
|
171
|
-
<label for="dropdown">Dropdown:</label>
|
|
172
|
-
<select id="dropdown" name="dropdown">
|
|
173
|
-
<option value="dd1">Drop Down Item 1</option>
|
|
174
|
-
<option value="dd2">Drop Down Item 2</option>
|
|
175
|
-
<option value="dd3">Drop Down Item 3</option>
|
|
176
|
-
<option value="dd4">Drop Down Item 4</option>
|
|
177
|
-
<option value="dd5">Drop Down Item 5</option>
|
|
178
|
-
<option value="dd6">Drop Down Item 6</option>
|
|
179
|
-
</select>
|
|
180
|
-
</td>
|
|
181
|
-
</tr>
|
|
182
|
-
|
|
183
|
-
<tr>
|
|
184
|
-
<td>
|
|
185
|
-
<label id="links">Links:</label>
|
|
186
|
-
<ul id="links_list">
|
|
187
|
-
<li>
|
|
188
|
-
<a id="link1" href="media_page.html">Open Media Page in same window/tab</a>
|
|
189
|
-
</li>
|
|
190
|
-
<li>
|
|
191
|
-
<a id="link2" href="media_page.html" target="_blank">Open Media Page in a new window/tab</a>
|
|
192
|
-
</li>
|
|
193
|
-
<li>
|
|
194
|
-
<a id="link3" role="link" aria-disabled="true">Disabled Link</a>
|
|
195
|
-
</li>
|
|
196
|
-
</ul>
|
|
197
|
-
</td>
|
|
198
|
-
</tr>
|
|
199
|
-
|
|
200
|
-
<tr>
|
|
201
|
-
<td>
|
|
202
|
-
<label for="table">Table:</label>
|
|
203
|
-
<table id="table">
|
|
204
|
-
<thead>
|
|
205
|
-
<tr>
|
|
206
|
-
<th>Company</th>
|
|
207
|
-
<th>Contact</th>
|
|
208
|
-
<th>Country</th>
|
|
209
|
-
</tr>
|
|
210
|
-
</thead>
|
|
211
|
-
<tbody>
|
|
212
|
-
<tr>
|
|
213
|
-
<td>Alfreds Futterkiste</td>
|
|
214
|
-
<td>Maria Anders</td>
|
|
215
|
-
<td>Germany</td>
|
|
216
|
-
</tr>
|
|
217
|
-
<tr>
|
|
218
|
-
<td>Centro comercial Moctezuma</td>
|
|
219
|
-
<td>Francisco Chang</td>
|
|
220
|
-
<td>Mexico</td>
|
|
221
|
-
</tr>
|
|
222
|
-
<tr>
|
|
223
|
-
<td>Ernst Handel</td>
|
|
224
|
-
<td>Roland Mendel</td>
|
|
225
|
-
<td>Austria</td>
|
|
226
|
-
</tr>
|
|
227
|
-
<tr>
|
|
228
|
-
<td>Island Trading</td>
|
|
229
|
-
<td>Helen Bennett</td>
|
|
230
|
-
<td>UK</td>
|
|
231
|
-
</tr>
|
|
232
|
-
</tbody>
|
|
233
|
-
</table>
|
|
234
|
-
</td>
|
|
235
|
-
</tr>
|
|
236
|
-
|
|
237
|
-
<tr>
|
|
238
|
-
<td>
|
|
239
|
-
<table>
|
|
240
|
-
<label id="images">Images:</label>
|
|
241
|
-
<tbody>
|
|
242
|
-
<tr>
|
|
243
|
-
<td>
|
|
244
|
-
<img id="image1" src="images/Wilder.jpg" alt="It's alive" style="width:225px;height:225px;">
|
|
245
|
-
</td>
|
|
246
|
-
<td>
|
|
247
|
-
<img id="image2" src="images/You_Betcha.jpg" alt="You Betcha" style="width:225px;height:225px;">
|
|
248
|
-
</td>
|
|
249
|
-
<td>
|
|
250
|
-
<img id="image3" src="wrongname.gif" alt="A broken image" style="width:225px;height:225px;">
|
|
251
|
-
</td>
|
|
252
|
-
</tr>
|
|
253
|
-
</tbody>
|
|
254
|
-
</table>
|
|
255
|
-
</td>
|
|
256
|
-
</tr>
|
|
257
|
-
|
|
258
|
-
<tr>
|
|
259
|
-
<td>
|
|
260
|
-
<input type="reset" id="cancel" name="cancel" value="Cancel" class="styled-click-button">
|
|
261
|
-
<input type="submit" id="submit" name="submit" value="Submit" class="styled-click-button">
|
|
262
|
-
</td>
|
|
263
|
-
</tr>
|
|
264
|
-
</table>
|
|
265
|
-
</form>
|
|
266
|
-
</div>
|
|
267
|
-
</div>
|
|
268
|
-
</body>
|
|
269
|
-
</html>
|
|
Binary file
|
|
Binary file
|