testcentricity_web 4.1.10 → 4.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +92 -1
- data/README.md +301 -230
- data/lib/testcentricity_web/browser_helper.rb +2 -1
- data/lib/testcentricity_web/data_objects/environment.rb +0 -3
- 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 +162 -152
- 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 +18 -162
- 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
|