selenium-webdriver 3.5.0 → 4.0.0-alpha.4
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.
- package/CHANGES.md +246 -0
- package/LICENSE +1 -1
- package/NOTICE +1 -1
- package/README.md +40 -40
- package/chrome.js +118 -134
- package/edge.js +43 -117
- package/example/chrome_android.js +8 -9
- package/example/chrome_mobile_emulation.js +8 -9
- package/example/firefox_channels.js +23 -19
- package/example/google_search.js +3 -3
- package/example/google_search_test.js +38 -27
- package/example/{chrome_headless.js → headless.js} +15 -7
- package/example/logging.js +40 -7
- package/firefox.js +789 -0
- package/http/index.js +62 -9
- package/http/util.js +11 -6
- package/ie.js +83 -97
- package/index.js +198 -114
- package/io/exec.js +29 -15
- package/io/index.js +1 -1
- package/io/zip.js +1 -1
- package/lib/actions.js +68 -63
- package/lib/atoms/get-attribute.js +86 -0
- package/lib/atoms/is-displayed.js +76 -76
- package/lib/by.js +7 -4
- package/lib/capabilities.js +310 -210
- package/lib/command.js +27 -51
- package/lib/error.js +100 -41
- package/lib/http.js +161 -120
- package/lib/input.js +1044 -8
- package/lib/logging.js +1 -5
- package/lib/promise.js +222 -3331
- package/lib/proxy.js +134 -39
- package/lib/session.js +2 -2
- package/lib/symbols.js +0 -0
- package/lib/until.js +1 -1
- package/lib/webdriver.js +717 -953
- package/net/index.js +21 -25
- package/net/portprober.js +51 -68
- package/package.json +17 -12
- package/proxy.js +0 -0
- package/remote/index.js +63 -44
- package/safari.js +41 -128
- package/testing/index.js +386 -315
- package/.npmignore +0 -2
- package/example/async_await_test.js +0 -68
- package/example/google_search_generator.js +0 -50
- package/example/parallel_flows.js +0 -54
- package/firefox/binary.js +0 -344
- package/firefox/extension.js +0 -224
- package/firefox/index.js +0 -626
- package/firefox/profile.js +0 -394
- package/lib/README +0 -5
- package/lib/atoms/getAttribute.js +0 -9
- package/lib/devmode.js +0 -34
- package/lib/events.js +0 -210
- package/lib/firefox/webdriver.json +0 -70
- package/lib/test/build.js +0 -151
- package/lib/test/data/ClickTest_testClicksASurroundingStrongTag.html +0 -11
- package/lib/test/data/Page.aspx +0 -17
- package/lib/test/data/Page.aspx.cs +0 -22
- package/lib/test/data/Redirect.aspx +0 -11
- package/lib/test/data/Redirect.aspx.cs +0 -9
- package/lib/test/data/Settings.StyleCop +0 -759
- package/lib/test/data/Web.Config +0 -59
- package/lib/test/data/actualXhtmlPage.xhtml +0 -14
- package/lib/test/data/ajaxy_page.html +0 -81
- package/lib/test/data/alerts.html +0 -85
- package/lib/test/data/banner.gif +0 -0
- package/lib/test/data/beach.jpg +0 -0
- package/lib/test/data/blank.html +0 -1
- package/lib/test/data/bodyTypingTest.html +0 -41
- package/lib/test/data/booleanAttributes.html +0 -19
- package/lib/test/data/child/childPage.html +0 -8
- package/lib/test/data/child/grandchild/grandchildPage.html +0 -8
- package/lib/test/data/clickEventPage.html +0 -26
- package/lib/test/data/click_frames.html +0 -10
- package/lib/test/data/click_jacker.html +0 -38
- package/lib/test/data/click_out_of_bounds.html +0 -23
- package/lib/test/data/click_out_of_bounds_overflow.html +0 -85
- package/lib/test/data/click_rtl.html +0 -19
- package/lib/test/data/click_source.html +0 -18
- package/lib/test/data/click_tests/click_iframe.html +0 -6
- package/lib/test/data/click_tests/click_in_iframe.html +0 -8
- package/lib/test/data/click_tests/disabled_element.html +0 -12
- package/lib/test/data/click_tests/disappearing_element.html +0 -62
- package/lib/test/data/click_tests/google_map.html +0 -15
- package/lib/test/data/click_tests/google_map.png +0 -0
- package/lib/test/data/click_tests/html5_submit_buttons.html +0 -16
- package/lib/test/data/click_tests/issue5237.html +0 -9
- package/lib/test/data/click_tests/issue5237_frame.html +0 -1
- package/lib/test/data/click_tests/issue5237_target.html +0 -10
- package/lib/test/data/click_tests/link_that_wraps.html +0 -11
- package/lib/test/data/click_tests/mapped_page1.html +0 -9
- package/lib/test/data/click_tests/mapped_page2.html +0 -9
- package/lib/test/data/click_tests/mapped_page3.html +0 -9
- package/lib/test/data/click_tests/overlapping_elements.html +0 -70
- package/lib/test/data/click_tests/partially_overlapping_elements.html +0 -124
- package/lib/test/data/click_tests/span_that_wraps.html +0 -11
- package/lib/test/data/click_tests/submitted_page.html +0 -9
- package/lib/test/data/click_tests/wrapped_overlapping_elements.html +0 -13
- package/lib/test/data/click_too_big.html +0 -10
- package/lib/test/data/click_too_big_in_frame.html +0 -11
- package/lib/test/data/clicks.html +0 -35
- package/lib/test/data/closeable_window.html +0 -8
- package/lib/test/data/cn-test.html +0 -156
- package/lib/test/data/colorPage.html +0 -20
- package/lib/test/data/cookies.html +0 -30
- package/lib/test/data/coordinates_tests/element_in_frame.html +0 -9
- package/lib/test/data/coordinates_tests/element_in_nested_frame.html +0 -9
- package/lib/test/data/coordinates_tests/page_with_element_out_of_view.html +0 -11
- package/lib/test/data/coordinates_tests/page_with_empty_element.html +0 -10
- package/lib/test/data/coordinates_tests/page_with_fixed_element.html +0 -12
- package/lib/test/data/coordinates_tests/page_with_hidden_element.html +0 -10
- package/lib/test/data/coordinates_tests/page_with_invisible_element.html +0 -10
- package/lib/test/data/coordinates_tests/page_with_transparent_element.html +0 -10
- package/lib/test/data/coordinates_tests/simple_page.html +0 -10
- package/lib/test/data/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- package/lib/test/data/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- package/lib/test/data/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
- package/lib/test/data/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- package/lib/test/data/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- package/lib/test/data/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- package/lib/test/data/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- package/lib/test/data/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- package/lib/test/data/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- package/lib/test/data/css/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
- package/lib/test/data/css/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
- package/lib/test/data/css/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
- package/lib/test/data/css/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
- package/lib/test/data/css/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
- package/lib/test/data/css/ui-lightness/jquery-ui-1.8.10.custom.css +0 -573
- package/lib/test/data/cssTransform.html +0 -61
- package/lib/test/data/cssTransform2.html +0 -20
- package/lib/test/data/document_write_in_onload.html +0 -13
- package/lib/test/data/dragAndDropInsideScrolledDiv.html +0 -67
- package/lib/test/data/dragAndDropTest.html +0 -102
- package/lib/test/data/dragDropOverflow.html +0 -104
- package/lib/test/data/draggableLists.html +0 -67
- package/lib/test/data/droppableItems.html +0 -65
- package/lib/test/data/dynamic.html +0 -39
- package/lib/test/data/dynamicallyModifiedPage.html +0 -42
- package/lib/test/data/errors.html +0 -15
- package/lib/test/data/firefox/jetpack-sample.xpi +0 -0
- package/lib/test/data/firefox/sample.xpi +0 -0
- package/lib/test/data/firefox/webextension.xpi +0 -0
- package/lib/test/data/fixedFooterNoScroll.html +0 -13
- package/lib/test/data/fixedFooterNoScrollQuirksMode.html +0 -12
- package/lib/test/data/formPage.html +0 -175
- package/lib/test/data/formSelectionPage.html +0 -46
- package/lib/test/data/form_handling_js_submit.html +0 -30
- package/lib/test/data/framePage3.html +0 -7
- package/lib/test/data/frameScrollChild.html +0 -26
- package/lib/test/data/frameScrollPage.html +0 -14
- package/lib/test/data/frameScrollParent.html +0 -11
- package/lib/test/data/frameWithAnimals.html +0 -11
- package/lib/test/data/frame_switching_tests/bug4876.html +0 -9
- package/lib/test/data/frame_switching_tests/bug4876_iframe.html +0 -9
- package/lib/test/data/frame_switching_tests/deletingFrame.html +0 -29
- package/lib/test/data/frame_switching_tests/deletingFrame_iframe.html +0 -8
- package/lib/test/data/frame_switching_tests/deletingFrame_iframe2.html +0 -7
- package/lib/test/data/frameset.html +0 -14
- package/lib/test/data/framesetPage2.html +0 -7
- package/lib/test/data/framesetPage3.html +0 -4
- package/lib/test/data/globalscope.html +0 -15
- package/lib/test/data/hidden.html +0 -5
- package/lib/test/data/hidden_partially.html +0 -45
- package/lib/test/data/html5/blue.jpg +0 -0
- package/lib/test/data/html5/database.js +0 -84
- package/lib/test/data/html5/geolocation.js +0 -18
- package/lib/test/data/html5/green.jpg +0 -0
- package/lib/test/data/html5/red.jpg +0 -0
- package/lib/test/data/html5/status.html +0 -1
- package/lib/test/data/html5/test.appcache +0 -11
- package/lib/test/data/html5/yellow.jpg +0 -0
- package/lib/test/data/html5Page.html +0 -32
- package/lib/test/data/icon.gif +0 -0
- package/lib/test/data/idElements.html +0 -2
- package/lib/test/data/iframeAtBottom.html +0 -15
- package/lib/test/data/iframeWithAlert.html +0 -1
- package/lib/test/data/iframeWithIframe.html +0 -1
- package/lib/test/data/iframes.html +0 -11
- package/lib/test/data/injectableContent.html +0 -22
- package/lib/test/data/javascriptEnhancedForm.html +0 -30
- package/lib/test/data/javascriptPage.html +0 -285
- package/lib/test/data/jquery-1.3.2.js +0 -4376
- package/lib/test/data/js/jquery-1.4.4.min.js +0 -167
- package/lib/test/data/js/jquery-ui-1.8.10.custom.min.js +0 -782
- package/lib/test/data/js/skins/lightgray/content.inline.min.css +0 -1
- package/lib/test/data/js/skins/lightgray/content.min.css +0 -1
- package/lib/test/data/js/skins/lightgray/fonts/readme.md +0 -1
- package/lib/test/data/js/skins/lightgray/fonts/tinymce-small.dev.svg +0 -175
- package/lib/test/data/js/skins/lightgray/fonts/tinymce-small.eot +0 -0
- package/lib/test/data/js/skins/lightgray/fonts/tinymce-small.svg +0 -62
- package/lib/test/data/js/skins/lightgray/fonts/tinymce-small.ttf +0 -0
- package/lib/test/data/js/skins/lightgray/fonts/tinymce-small.woff +0 -0
- package/lib/test/data/js/skins/lightgray/fonts/tinymce.dev.svg +0 -153
- package/lib/test/data/js/skins/lightgray/fonts/tinymce.eot +0 -0
- package/lib/test/data/js/skins/lightgray/fonts/tinymce.svg +0 -63
- package/lib/test/data/js/skins/lightgray/fonts/tinymce.ttf +0 -0
- package/lib/test/data/js/skins/lightgray/fonts/tinymce.woff +0 -0
- package/lib/test/data/js/skins/lightgray/img/anchor.gif +0 -0
- package/lib/test/data/js/skins/lightgray/img/loader.gif +0 -0
- package/lib/test/data/js/skins/lightgray/img/object.gif +0 -0
- package/lib/test/data/js/skins/lightgray/img/trans.gif +0 -0
- package/lib/test/data/js/skins/lightgray/skin.ie7.min.css +0 -1
- package/lib/test/data/js/skins/lightgray/skin.min.css +0 -1
- package/lib/test/data/js/themes/modern/theme.min.js +0 -1
- package/lib/test/data/js/tinymce.min.js +0 -10
- package/lib/test/data/key_logger.html +0 -34
- package/lib/test/data/key_tests/remove_on_keypress.html +0 -36
- package/lib/test/data/keyboard_shortcut.html +0 -36
- package/lib/test/data/linked_image.html +0 -16
- package/lib/test/data/locators_tests/boolean_attribute_selected.html +0 -13
- package/lib/test/data/locators_tests/boolean_attribute_selected_html4.html +0 -13
- package/lib/test/data/longContentPage.html +0 -55
- package/lib/test/data/macbeth.html +0 -5255
- package/lib/test/data/map.png +0 -0
- package/lib/test/data/map_visibility.html +0 -8
- package/lib/test/data/markerTransparent.png +0 -0
- package/lib/test/data/messages.html +0 -15
- package/lib/test/data/meta-redirect.html +0 -11
- package/lib/test/data/missedJsReference.html +0 -11
- package/lib/test/data/modal_dialogs/modal_1.html +0 -21
- package/lib/test/data/modal_dialogs/modal_2.html +0 -21
- package/lib/test/data/modal_dialogs/modal_3.html +0 -15
- package/lib/test/data/modal_dialogs/modalindex.html +0 -21
- package/lib/test/data/mouseOver.html +0 -17
- package/lib/test/data/mousePositionTracker.html +0 -33
- package/lib/test/data/nestedElements.html +0 -164
- package/lib/test/data/overflow/x_auto_y_auto.html +0 -30
- package/lib/test/data/overflow/x_auto_y_hidden.html +0 -30
- package/lib/test/data/overflow/x_auto_y_scroll.html +0 -30
- package/lib/test/data/overflow/x_hidden_y_auto.html +0 -30
- package/lib/test/data/overflow/x_hidden_y_hidden.html +0 -30
- package/lib/test/data/overflow/x_hidden_y_scroll.html +0 -30
- package/lib/test/data/overflow/x_scroll_y_auto.html +0 -30
- package/lib/test/data/overflow/x_scroll_y_hidden.html +0 -30
- package/lib/test/data/overflow/x_scroll_y_scroll.html +0 -30
- package/lib/test/data/overflow-body.html +0 -15
- package/lib/test/data/pageWithOnBeforeUnloadMessage.html +0 -20
- package/lib/test/data/pageWithOnLoad.html +0 -6
- package/lib/test/data/pageWithOnUnload.html +0 -6
- package/lib/test/data/page_with_link_to_slow_loading_page.html +0 -6
- package/lib/test/data/plain.txt +0 -1
- package/lib/test/data/proxy/page1.html +0 -20
- package/lib/test/data/proxy/page2.html +0 -24
- package/lib/test/data/proxy/page3.html +0 -5
- package/lib/test/data/readOnlyPage.html +0 -24
- package/lib/test/data/rectangles.html +0 -40
- package/lib/test/data/resultPage.html +0 -25
- package/lib/test/data/rich_text.html +0 -161
- package/lib/test/data/safari/frames_benchmark.html +0 -31
- package/lib/test/data/screen/screen.css +0 -19
- package/lib/test/data/screen/screen.html +0 -72
- package/lib/test/data/screen/screen.js +0 -7
- package/lib/test/data/screen/screen_frame1.html +0 -72
- package/lib/test/data/screen/screen_frame2.html +0 -72
- package/lib/test/data/screen/screen_frames.html +0 -11
- package/lib/test/data/screen/screen_iframes.html +0 -12
- package/lib/test/data/screen/screen_too_long.html +0 -68
- package/lib/test/data/screen/screen_x_long.html +0 -72
- package/lib/test/data/screen/screen_x_too_long.html +0 -72
- package/lib/test/data/screen/screen_y_long.html +0 -72
- package/lib/test/data/screen/screen_y_too_long.html +0 -72
- package/lib/test/data/scroll.html +0 -27
- package/lib/test/data/scroll2.html +0 -21
- package/lib/test/data/scroll3.html +0 -8
- package/lib/test/data/scroll4.html +0 -7
- package/lib/test/data/scroll5.html +0 -18
- package/lib/test/data/scrolling_tests/frame_with_height_above_200.html +0 -26
- package/lib/test/data/scrolling_tests/frame_with_height_above_2000.html +0 -26
- package/lib/test/data/scrolling_tests/frame_with_nested_scrolling_frame.html +0 -11
- package/lib/test/data/scrolling_tests/frame_with_nested_scrolling_frame_out_of_view.html +0 -12
- package/lib/test/data/scrolling_tests/frame_with_small_height.html +0 -10
- package/lib/test/data/scrolling_tests/page_with_double_overflow_auto.html +0 -19
- package/lib/test/data/scrolling_tests/page_with_frame_out_of_view.html +0 -12
- package/lib/test/data/scrolling_tests/page_with_nested_scrolling_frames.html +0 -11
- package/lib/test/data/scrolling_tests/page_with_nested_scrolling_frames_out_of_view.html +0 -12
- package/lib/test/data/scrolling_tests/page_with_non_scrolling_frame.html +0 -11
- package/lib/test/data/scrolling_tests/page_with_scrolling_frame.html +0 -11
- package/lib/test/data/scrolling_tests/page_with_scrolling_frame_out_of_view.html +0 -12
- package/lib/test/data/scrolling_tests/page_with_tall_frame.html +0 -11
- package/lib/test/data/scrolling_tests/page_with_y_overflow_auto.html +0 -14
- package/lib/test/data/scrolling_tests/target_page.html +0 -9
- package/lib/test/data/selectPage.html +0 -58
- package/lib/test/data/selectableItems.html +0 -65
- package/lib/test/data/sessionCookie.html +0 -21
- package/lib/test/data/sessionCookieDest.html +0 -34
- package/lib/test/data/simple.xml +0 -5
- package/lib/test/data/simpleTest.html +0 -98
- package/lib/test/data/single_text_input.html +0 -12
- package/lib/test/data/slowLoadingAlert.html +0 -10
- package/lib/test/data/slowLoadingResourcePage.html +0 -12
- package/lib/test/data/slow_loading_iframes.html +0 -14
- package/lib/test/data/styledPage.html +0 -28
- package/lib/test/data/svgPiechart.xhtml +0 -81
- package/lib/test/data/svgTest.svg +0 -4
- package/lib/test/data/tables.html +0 -36
- package/lib/test/data/tinymce.html +0 -10
- package/lib/test/data/transformable.xml +0 -11
- package/lib/test/data/transformable.xsl +0 -37
- package/lib/test/data/transparentUpload.html +0 -70
- package/lib/test/data/underscore.html +0 -9
- package/lib/test/data/unicode_ltr.html +0 -8
- package/lib/test/data/upload.html +0 -45
- package/lib/test/data/userDefinedProperty.html +0 -8
- package/lib/test/data/veryLargeCanvas.html +0 -81
- package/lib/test/data/visibility-css.html +0 -21
- package/lib/test/data/win32frameset.html +0 -8
- package/lib/test/data/window_switching_tests/page_with_frame.html +0 -12
- package/lib/test/data/window_switching_tests/simple_page.html +0 -9
- package/lib/test/data/xhtmlFormPage.xhtml +0 -17
- package/lib/test/data/xhtmlTest.html +0 -76
- package/lib/test/fileserver.js +0 -321
- package/lib/test/httpserver.js +0 -120
- package/lib/test/index.js +0 -270
- package/lib/test/promise.js +0 -79
- package/lib/test/resources.js +0 -44
- package/opera.js +0 -405
- package/phantomjs.js +0 -282
- package/test/actions_test.js +0 -52
- package/test/chrome/options_test.js +0 -227
- package/test/chrome/service_test.js +0 -45
- package/test/cookie_test.js +0 -214
- package/test/element_finding_test.js +0 -426
- package/test/execute_script_test.js +0 -350
- package/test/fingerprint_test.js +0 -62
- package/test/firefox/extension_test.js +0 -120
- package/test/firefox/firefox_test.js +0 -261
- package/test/firefox/profile_test.js +0 -140
- package/test/http/http_test.js +0 -223
- package/test/http/util_test.js +0 -178
- package/test/io/io_test.js +0 -360
- package/test/io/zip_test.js +0 -128
- package/test/lib/by_test.js +0 -160
- package/test/lib/capabilities_test.js +0 -111
- package/test/lib/error_test.js +0 -305
- package/test/lib/events_test.js +0 -177
- package/test/lib/http_test.js +0 -696
- package/test/lib/logging_test.js +0 -272
- package/test/lib/promise_aplus_test.js +0 -78
- package/test/lib/promise_error_test.js +0 -884
- package/test/lib/promise_flow_test.js +0 -2288
- package/test/lib/promise_generator_test.js +0 -310
- package/test/lib/promise_test.js +0 -1109
- package/test/lib/testutil.js +0 -90
- package/test/lib/until_test.js +0 -478
- package/test/lib/webdriver_test.js +0 -2311
- package/test/logging_test.js +0 -167
- package/test/net/index_test.js +0 -60
- package/test/net/portprober_test.js +0 -128
- package/test/page_loading_test.js +0 -166
- package/test/phantomjs/execute_phantomjs_test.js +0 -59
- package/test/proxy_test.js +0 -180
- package/test/rect_test.js +0 -60
- package/test/remote_test.js +0 -117
- package/test/safari_test.js +0 -108
- package/test/session_test.js +0 -99
- package/test/stale_element_test.js +0 -63
- package/test/tag_name_test.js +0 -36
- package/test/testing/assert_test.js +0 -373
- package/test/testing/index_test.js +0 -224
- package/test/upload_test.js +0 -86
- package/test/window_test.js +0 -161
- package/testing/assert.js +0 -378
|
@@ -27,28 +27,37 @@
|
|
|
27
27
|
|
|
28
28
|
'use strict';
|
|
29
29
|
|
|
30
|
-
const {Builder, By, promise, until} = require('..');
|
|
30
|
+
const {Builder, By, Key, promise, until} = require('..');
|
|
31
31
|
const {Channel, Options} = require('../firefox');
|
|
32
32
|
|
|
33
33
|
let i = 0;
|
|
34
34
|
function resposition(driver) {
|
|
35
|
-
return driver.manage().window().
|
|
36
|
-
|
|
35
|
+
return driver.manage().window().setRect({
|
|
36
|
+
width: 600,
|
|
37
|
+
height: 400,
|
|
38
|
+
x: 300 * (i++),
|
|
39
|
+
y: 0
|
|
40
|
+
});
|
|
37
41
|
}
|
|
38
42
|
|
|
39
|
-
function doSearch(driver) {
|
|
40
|
-
|
|
41
|
-
|
|
43
|
+
async function doSearch(driver) {
|
|
44
|
+
try {
|
|
45
|
+
// Start on the base about page.
|
|
46
|
+
await driver.get('about:')
|
|
42
47
|
// Reposition so users can see the three windows.
|
|
43
|
-
|
|
48
|
+
await resposition(driver);
|
|
44
49
|
// Pause so users can see the magic.
|
|
45
|
-
|
|
50
|
+
await promise.delayed(750);
|
|
46
51
|
// Now do the rest.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
.
|
|
51
|
-
|
|
52
|
+
await driver.get('http://www.google.com/ncr');
|
|
53
|
+
await driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN);
|
|
54
|
+
await driver.wait(until.titleIs('webdriver - Google Search'), 1000);
|
|
55
|
+
console.log('Success!');
|
|
56
|
+
} catch (ex) {
|
|
57
|
+
console.log('An error occured! ' + ex);
|
|
58
|
+
} finally {
|
|
59
|
+
await driver.quit();
|
|
60
|
+
}
|
|
52
61
|
}
|
|
53
62
|
|
|
54
63
|
function createDriver(channel) {
|
|
@@ -56,17 +65,12 @@ function createDriver(channel) {
|
|
|
56
65
|
return new Builder().forBrowser('firefox').setFirefoxOptions(options).build();
|
|
57
66
|
}
|
|
58
67
|
|
|
59
|
-
// NOTE: disabling the promise manager so searches all run concurrently.
|
|
60
|
-
// For more on the promise manager and its pending deprecation, see
|
|
61
|
-
// https://github.com/SeleniumHQ/selenium/issues/2969
|
|
62
|
-
promise.USE_PROMISE_MANAGER = false;
|
|
63
|
-
|
|
64
68
|
Promise.all([
|
|
65
69
|
doSearch(createDriver(Channel.RELEASE)),
|
|
66
70
|
doSearch(createDriver(Channel.AURORA)), // Developer Edition.
|
|
67
71
|
doSearch(createDriver(Channel.NIGHTLY)),
|
|
68
72
|
]).then(_ => {
|
|
69
|
-
console.log('
|
|
73
|
+
console.log('All done!');
|
|
70
74
|
}, err => {
|
|
71
75
|
console.error('An error occured! ' + err);
|
|
72
76
|
setTimeout(() => {throw err}, 0);
|
package/example/google_search.js
CHANGED
|
@@ -37,14 +37,14 @@
|
|
|
37
37
|
* node selenium-webdriver/example/google_search.js
|
|
38
38
|
*/
|
|
39
39
|
|
|
40
|
-
const {Builder, By, until} = require('..');
|
|
40
|
+
const {Builder, By, Key, until} = require('..');
|
|
41
41
|
|
|
42
42
|
var driver = new Builder()
|
|
43
43
|
.forBrowser('firefox')
|
|
44
44
|
.build();
|
|
45
45
|
|
|
46
46
|
driver.get('http://www.google.com/ncr')
|
|
47
|
-
.then(_ =>
|
|
48
|
-
|
|
47
|
+
.then(_ =>
|
|
48
|
+
driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN))
|
|
49
49
|
.then(_ => driver.wait(until.titleIs('webdriver - Google Search'), 1000))
|
|
50
50
|
.then(_ => driver.quit());
|
|
@@ -18,44 +18,55 @@
|
|
|
18
18
|
/**
|
|
19
19
|
* @fileoverview An example test that may be run using Mocha.
|
|
20
20
|
*
|
|
21
|
+
* This example uses the `selenium-webdriver/testing.suite` function, which will
|
|
22
|
+
* automatically run tests against every available WebDriver browser on the
|
|
23
|
+
* current system. Alternatively, you may use the `SELENIUM_BROWSER`
|
|
24
|
+
* environment variable to narrow the scope at runtime.
|
|
25
|
+
*
|
|
21
26
|
* Usage:
|
|
22
27
|
*
|
|
28
|
+
* # Automatically determine which browsers to run against.
|
|
23
29
|
* mocha -t 10000 selenium-webdriver/example/google_search_test.js
|
|
24
30
|
*
|
|
25
|
-
*
|
|
26
|
-
* variable:
|
|
27
|
-
*
|
|
31
|
+
* # Configure tests to only run against Google Chrome.
|
|
28
32
|
* SELENIUM_BROWSER=chrome \
|
|
29
33
|
* mocha -t 10000 selenium-webdriver/example/google_search_test.js
|
|
30
34
|
*/
|
|
31
35
|
|
|
32
|
-
const
|
|
33
|
-
const test = require('../testing');
|
|
36
|
+
const assert = require('assert');
|
|
34
37
|
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
const {Browser, By, Key, until} = require('..');
|
|
39
|
+
const {ignore, suite} = require('../testing');
|
|
37
40
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
suite(function(env) {
|
|
42
|
+
describe('Google Search', function() {
|
|
43
|
+
let driver;
|
|
41
44
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
});
|
|
45
|
+
before(async function() {
|
|
46
|
+
// env.builder() returns a Builder instance preconfigured for the
|
|
47
|
+
// envrionment's target browser (you may still define browser specific
|
|
48
|
+
// options if necessary (i.e. firefox.Options or chrome.Options)).
|
|
49
|
+
driver = await env.builder().build();
|
|
50
|
+
});
|
|
49
51
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
52
|
+
it('demo', async function() {
|
|
53
|
+
await driver.get('https://www.google.com/ncr');
|
|
54
|
+
await driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN);
|
|
55
|
+
await driver.wait(until.titleIs('webdriver - Google Search'), 1000);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
// The ignore function returns wrappers around describe & it that will
|
|
59
|
+
// suppress tests if the provided predicate returns true. You may provide
|
|
60
|
+
// any synchronous predicate. The env.browsers(...) function generates a
|
|
61
|
+
// predicate that will suppress tests if the env targets one of the
|
|
62
|
+
// specified browsers.
|
|
63
|
+
//
|
|
64
|
+
// This example is always configured to skip Chrome.
|
|
65
|
+
ignore(env.browsers(Browser.CHROME)).it('demo 2', async function() {
|
|
66
|
+
await driver.get('https://www.google.com/ncr');
|
|
67
|
+
await driver.wait(until.urlIs('https://www.google.com/'), 1500);
|
|
68
|
+
});
|
|
59
69
|
|
|
60
|
-
|
|
70
|
+
after(() => driver && driver.quit());
|
|
71
|
+
});
|
|
61
72
|
});
|
|
@@ -16,18 +16,24 @@
|
|
|
16
16
|
// under the License.
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
* @fileoverview An example of running Chrome in headless mode.
|
|
19
|
+
* @fileoverview An example of running Chrome or Firefox in headless mode.
|
|
20
20
|
*
|
|
21
|
-
*
|
|
21
|
+
* To run with Chrome, ensure you have Chrome 59+ installed and that
|
|
22
22
|
* chromedriver 2.30+ is present on your system PATH:
|
|
23
23
|
* <https://sites.google.com/a/chromium.org/chromedriver/downloads>
|
|
24
24
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
25
|
+
* SELENIUM_BROWSER=chrome node selenium-webdriver/example/headless.js
|
|
26
|
+
*
|
|
27
|
+
* To run with Firefox, ensure you have Firefox 57+ installed and that
|
|
28
|
+
* geckodriver 0.19.0+ is present on your system PATH:
|
|
29
|
+
* <https://github.com/mozilla/geckodriver/releases>
|
|
30
|
+
*
|
|
31
|
+
* SELENIUM_BROWSER=firefox node selenium-webdriver/example/headless.js
|
|
27
32
|
*/
|
|
28
33
|
|
|
29
34
|
const chrome = require('../chrome');
|
|
30
|
-
const
|
|
35
|
+
const firefox = require('../firefox');
|
|
36
|
+
const {Builder, By, Key, until} = require('..');
|
|
31
37
|
|
|
32
38
|
const width = 640;
|
|
33
39
|
const height = 480;
|
|
@@ -36,11 +42,13 @@ let driver = new Builder()
|
|
|
36
42
|
.forBrowser('chrome')
|
|
37
43
|
.setChromeOptions(
|
|
38
44
|
new chrome.Options().headless().windowSize({width, height}))
|
|
45
|
+
.setFirefoxOptions(
|
|
46
|
+
new firefox.Options().headless().windowSize({width, height}))
|
|
39
47
|
.build();
|
|
40
48
|
|
|
41
49
|
driver.get('http://www.google.com/ncr')
|
|
42
|
-
.then(_ =>
|
|
43
|
-
|
|
50
|
+
.then(_ =>
|
|
51
|
+
driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN))
|
|
44
52
|
.then(_ => driver.wait(until.titleIs('webdriver - Google Search'), 1000))
|
|
45
53
|
.then(
|
|
46
54
|
_ => driver.quit(),
|
package/example/logging.js
CHANGED
|
@@ -21,15 +21,48 @@
|
|
|
21
21
|
|
|
22
22
|
'use strict';
|
|
23
23
|
|
|
24
|
-
const
|
|
24
|
+
const chrome = require('../chrome');
|
|
25
|
+
const firefox = require('../firefox');
|
|
26
|
+
const edge = require('../edge');
|
|
27
|
+
const {Builder, By, Key, logging, until} = require('..');
|
|
25
28
|
|
|
26
29
|
logging.installConsoleHandler();
|
|
27
30
|
logging.getLogger('webdriver.http').setLevel(logging.Level.ALL);
|
|
28
31
|
|
|
29
|
-
|
|
32
|
+
(async function() {
|
|
33
|
+
let driver;
|
|
34
|
+
try {
|
|
35
|
+
driver = await new Builder()
|
|
36
|
+
// Default to using Firefox. This can be overridden at runtime by
|
|
37
|
+
// setting the SELENIUM_BROWSER environment variable:
|
|
38
|
+
//
|
|
39
|
+
// SELENIUM_BROWSER=chrome node selenium-webdriver/example/logging.js
|
|
40
|
+
.forBrowser('firefox')
|
|
41
|
+
// Configure the service for each browser to enable verbose logging and
|
|
42
|
+
// to inherit the stdio settings from the current process. The builder
|
|
43
|
+
// will only start the service if needed for the selected browser.
|
|
44
|
+
.setChromeService(
|
|
45
|
+
new chrome.ServiceBuilder()
|
|
46
|
+
.enableVerboseLogging()
|
|
47
|
+
.setStdio('inherit'))
|
|
48
|
+
.setEdgeService(
|
|
49
|
+
process.platform === 'win32'
|
|
50
|
+
? new edge.ServiceBuilder()
|
|
51
|
+
.enableVerboseLogging()
|
|
52
|
+
.setStdio('inherit')
|
|
53
|
+
: null)
|
|
54
|
+
.setFirefoxService(
|
|
55
|
+
new firefox.ServiceBuilder()
|
|
56
|
+
.enableVerboseLogging()
|
|
57
|
+
.setStdio('inherit'))
|
|
58
|
+
.build();
|
|
30
59
|
|
|
31
|
-
driver.get('http://www.google.com/ncr')
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
60
|
+
await driver.get('http://www.google.com/ncr');
|
|
61
|
+
await driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN);
|
|
62
|
+
await driver.wait(until.titleIs('webdriver - Google Search'), 1000);
|
|
63
|
+
} finally {
|
|
64
|
+
if (driver) {
|
|
65
|
+
await driver.quit();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
})();
|