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
package/lib/proxy.js
CHANGED
|
@@ -18,26 +18,126 @@
|
|
|
18
18
|
/**
|
|
19
19
|
* @fileoverview Defines functions for configuring a webdriver proxy:
|
|
20
20
|
*
|
|
21
|
-
* const
|
|
21
|
+
* const proxy = require('selenium-webdriver/proxy');
|
|
22
|
+
* const {Capabilities} = require('selenium-webdriver');
|
|
22
23
|
*
|
|
23
|
-
*
|
|
24
|
+
* let capabilities = new Capabilities();
|
|
24
25
|
* capabilities.setProxy(proxy.manual({http: 'host:1234'});
|
|
25
26
|
*/
|
|
26
27
|
|
|
27
28
|
'use strict';
|
|
28
29
|
|
|
29
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Supported {@linkplain Config proxy configuration} types.
|
|
32
|
+
*
|
|
33
|
+
* @enum {string}
|
|
34
|
+
*/
|
|
35
|
+
const Type = {
|
|
36
|
+
AUTODETECT: 'autodetect',
|
|
37
|
+
DIRECT: 'direct',
|
|
38
|
+
MANUAL: 'manual',
|
|
39
|
+
PAC: 'pac',
|
|
40
|
+
SYSTEM: 'system',
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Describes how a proxy should be configured for a WebDriver session.
|
|
46
|
+
* @record
|
|
47
|
+
*/
|
|
48
|
+
function Config() {}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* The proxy type.
|
|
52
|
+
* @type {Type}
|
|
53
|
+
*/
|
|
54
|
+
Config.prototype.proxyType;
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Describes how to configure a PAC proxy.
|
|
59
|
+
* @record
|
|
60
|
+
* @extends {Config}
|
|
61
|
+
*/
|
|
62
|
+
function PacConfig() {}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* URL for the PAC file to use.
|
|
66
|
+
*
|
|
67
|
+
* @type {string}
|
|
68
|
+
*/
|
|
69
|
+
PacConfig.prototype.proxyAutoconfigUrl;
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Record object that defines a manual proxy configuration. Manual
|
|
74
|
+
* configurations can be easily created using either the
|
|
75
|
+
* {@link ./proxy.manual proxy.manual()} or {@link ./proxy.socks proxy.socks()}
|
|
76
|
+
* factory method.
|
|
77
|
+
*
|
|
78
|
+
* @record
|
|
79
|
+
* @extends {Config}
|
|
80
|
+
*/
|
|
81
|
+
function ManualConfig() {}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* The proxy host for FTP requests.
|
|
85
|
+
*
|
|
86
|
+
* @type {(string|undefined)}
|
|
87
|
+
*/
|
|
88
|
+
ManualConfig.prototype.ftpProxy;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* The proxy host for HTTP requests.
|
|
92
|
+
*
|
|
93
|
+
* @type {(string|undefined)}
|
|
94
|
+
*/
|
|
95
|
+
ManualConfig.prototype.httpProxy;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* An array of hosts which should bypass all proxies.
|
|
99
|
+
*
|
|
100
|
+
* @type {(Array<string>|undefined)}
|
|
101
|
+
*/
|
|
102
|
+
ManualConfig.prototype.noProxy;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* The proxy host for HTTPS requests.
|
|
106
|
+
*
|
|
107
|
+
* @type {(string|undefined)}
|
|
108
|
+
*/
|
|
109
|
+
ManualConfig.prototype.sslProxy;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Defines the host and port for the SOCKS proxy to use.
|
|
113
|
+
*
|
|
114
|
+
* @type {(number|undefined)}
|
|
115
|
+
*/
|
|
116
|
+
ManualConfig.prototype.socksProxy;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Defines the SOCKS proxy version. Must be a number in the range [0, 255].
|
|
120
|
+
*
|
|
121
|
+
* @type {(number|undefined)}
|
|
122
|
+
*/
|
|
123
|
+
ManualConfig.prototype.socksVersion;
|
|
30
124
|
|
|
31
125
|
|
|
32
126
|
// PUBLIC API
|
|
33
127
|
|
|
34
128
|
|
|
129
|
+
/** @const */ exports.Config = Config;
|
|
130
|
+
/** @const */ exports.ManualConfig = ManualConfig;
|
|
131
|
+
/** @const */ exports.PacConfig = PacConfig;
|
|
132
|
+
/** @const */ exports.Type = Type;
|
|
133
|
+
|
|
134
|
+
|
|
35
135
|
/**
|
|
36
136
|
* Configures WebDriver to bypass all browser proxies.
|
|
37
|
-
* @return {!
|
|
137
|
+
* @return {!Config} A new proxy configuration object.
|
|
38
138
|
*/
|
|
39
139
|
exports.direct = function() {
|
|
40
|
-
return {proxyType:
|
|
140
|
+
return {proxyType: Type.DIRECT};
|
|
41
141
|
};
|
|
42
142
|
|
|
43
143
|
|
|
@@ -58,21 +158,18 @@ exports.direct = function() {
|
|
|
58
158
|
* @param {{ftp: (string|undefined),
|
|
59
159
|
* http: (string|undefined),
|
|
60
160
|
* https: (string|undefined),
|
|
61
|
-
* bypass: (
|
|
161
|
+
* bypass: (Array<string>|undefined)}} options Proxy
|
|
62
162
|
* configuration options.
|
|
63
|
-
* @return {!
|
|
64
|
-
*/
|
|
65
|
-
exports.manual = function(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
noProxy: Array.isArray(options.bypass) ?
|
|
74
|
-
options.bypass.join(',') : options.bypass
|
|
75
|
-
});
|
|
163
|
+
* @return {!ManualConfig} A new proxy configuration object.
|
|
164
|
+
*/
|
|
165
|
+
exports.manual = function({ftp, http, https, bypass}) {
|
|
166
|
+
return {
|
|
167
|
+
proxyType: Type.MANUAL,
|
|
168
|
+
ftpProxy: ftp,
|
|
169
|
+
httpProxy: http,
|
|
170
|
+
sslProxy: https,
|
|
171
|
+
noProxy: bypass,
|
|
172
|
+
};
|
|
76
173
|
};
|
|
77
174
|
|
|
78
175
|
|
|
@@ -85,21 +182,22 @@ exports.manual = function(options) {
|
|
|
85
182
|
* const proxy = require('selenium-webdriver/lib/proxy');
|
|
86
183
|
*
|
|
87
184
|
* let capabilities = new Capabilities();
|
|
88
|
-
* capabilities.setProxy(proxy.socks('localhost:1234'
|
|
185
|
+
* capabilities.setProxy(proxy.socks('localhost:1234'));
|
|
89
186
|
*
|
|
187
|
+
* // Or, to include authentication.
|
|
188
|
+
* capabilities.setProxy(proxy.socks('bob:password@localhost:1234'));
|
|
90
189
|
*
|
|
91
|
-
*
|
|
92
|
-
* @param {string}
|
|
93
|
-
* @param {
|
|
94
|
-
* @return {!
|
|
190
|
+
*
|
|
191
|
+
* @param {string} socksProxy The proxy host, in the form `hostname:port`.
|
|
192
|
+
* @param {number=} socksVersion The SOCKS proxy version.
|
|
193
|
+
* @return {!ManualConfig} A new proxy configuration object.
|
|
95
194
|
* @see https://en.wikipedia.org/wiki/SOCKS
|
|
96
195
|
*/
|
|
97
|
-
exports.socks = function(
|
|
98
|
-
return /** @type {!
|
|
99
|
-
proxyType:
|
|
100
|
-
socksProxy
|
|
101
|
-
|
|
102
|
-
socksPassword: password
|
|
196
|
+
exports.socks = function(socksProxy, socksVersion = undefined) {
|
|
197
|
+
return /** @type {!Config} */({
|
|
198
|
+
proxyType: Type.MANUAL,
|
|
199
|
+
socksProxy,
|
|
200
|
+
socksVersion
|
|
103
201
|
});
|
|
104
202
|
};
|
|
105
203
|
|
|
@@ -107,21 +205,18 @@ exports.socks = function(host, username, password) {
|
|
|
107
205
|
/**
|
|
108
206
|
* Configures WebDriver to configure the browser proxy using the PAC file at
|
|
109
207
|
* the given URL.
|
|
110
|
-
* @param {string}
|
|
111
|
-
* @return {!
|
|
208
|
+
* @param {string} proxyAutoconfigUrl URL for the PAC proxy to use.
|
|
209
|
+
* @return {!PacConfig} A new proxy configuration object.
|
|
112
210
|
*/
|
|
113
|
-
exports.pac = function(
|
|
114
|
-
return {
|
|
115
|
-
proxyType: 'pac',
|
|
116
|
-
proxyAutoconfigUrl: url
|
|
117
|
-
};
|
|
211
|
+
exports.pac = function(proxyAutoconfigUrl) {
|
|
212
|
+
return {proxyType: Type.PAC, proxyAutoconfigUrl};
|
|
118
213
|
};
|
|
119
214
|
|
|
120
215
|
|
|
121
216
|
/**
|
|
122
217
|
* Configures WebDriver to use the current system's proxy.
|
|
123
|
-
* @return {!
|
|
218
|
+
* @return {!Config} A new proxy configuration object.
|
|
124
219
|
*/
|
|
125
220
|
exports.system = function() {
|
|
126
|
-
return {proxyType:
|
|
221
|
+
return {proxyType: Type.SYSTEM};
|
|
127
222
|
};
|
package/lib/session.js
CHANGED
|
@@ -27,8 +27,8 @@ class Session {
|
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* @param {string} id The session ID.
|
|
30
|
-
* @param {
|
|
31
|
-
* capabilities.
|
|
30
|
+
* @param {!./capabilities.Capabilities} capabilities
|
|
31
|
+
* The session capabilities.
|
|
32
32
|
*/
|
|
33
33
|
constructor(id, capabilities) {
|
|
34
34
|
/** @private {string} */
|
package/lib/symbols.js
CHANGED
|
File without changes
|
package/lib/until.js
CHANGED
|
@@ -205,7 +205,7 @@ exports.urlContains = function urlContains(substrUrl) {
|
|
|
205
205
|
'for URL to contain ' + JSON.stringify(substrUrl),
|
|
206
206
|
function(driver) {
|
|
207
207
|
return driver.getCurrentUrl().then(function(url) {
|
|
208
|
-
return url.indexOf(substrUrl) !== -1;
|
|
208
|
+
return url && url.indexOf(substrUrl) !== -1;
|
|
209
209
|
});
|
|
210
210
|
});
|
|
211
211
|
};
|