selenium-webdriver 2.48.2 → 2.53.3
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 +116 -0
- package/NOTICE +1 -1
- package/README.md +59 -9
- package/builder.js +375 -358
- package/chrome.js +549 -586
- package/edge.js +378 -0
- package/error.js +9 -6
- package/example/google_search.js +1 -1
- package/example/google_search_generator.js +2 -4
- package/example/logging.js +6 -2
- package/example/sample.js +21 -0
- package/executors.js +11 -27
- package/firefox/binary.js +149 -98
- package/firefox/extension.js +15 -19
- package/firefox/index.js +256 -163
- package/firefox/profile.js +223 -243
- package/http/index.js +487 -81
- package/http/util.js +40 -36
- package/ie.js +288 -309
- package/index.js +34 -125
- package/io/exec.js +58 -39
- package/io/index.js +72 -60
- package/lib/README +4 -0
- package/lib/actions.js +596 -0
- package/lib/by.js +277 -0
- package/lib/capabilities.js +450 -0
- package/lib/{webdriver/command.js → command.js} +91 -72
- package/lib/{webdriver/button.js → devmode.js} +13 -8
- package/lib/error.js +690 -0
- package/lib/events.js +212 -0
- package/lib/firefox/amd64/libnoblur64.so +0 -0
- package/lib/firefox/i386/libnoblur.so +0 -0
- package/lib/firefox/webdriver.json +5 -1
- package/lib/firefox/webdriver.xpi +0 -0
- package/lib/{webdriver/key.js → input.js} +84 -2
- package/lib/logging.js +670 -0
- package/lib/{webdriver/promise.js → promise.js} +817 -644
- package/lib/safari/client.js +266 -214
- package/lib/session.js +80 -0
- package/lib/{webdriver/serializable.js → symbols.js} +16 -19
- package/lib/test/build.js +4 -4
- package/lib/test/data/click_tests/html5_submit_buttons.html +2 -1
- package/lib/test/data/click_tests/overlapping_elements.html +15 -4
- package/lib/test/data/click_tests/partially_overlapping_elements.html +124 -0
- package/lib/test/data/click_tests/wrapped_overlapping_elements.html +13 -0
- package/lib/test/data/hidden_partially.html +45 -0
- package/lib/test/data/readOnlyPage.html +1 -1
- package/lib/test/data/selectPage.html +18 -2
- package/lib/test/fileserver.js +3 -4
- package/lib/test/index.js +7 -3
- package/lib/test/resources.js +1 -1
- package/lib/until.js +376 -0
- package/lib/webdriver.js +2440 -0
- package/net/index.js +4 -0
- package/net/portprober.js +16 -12
- package/opera.js +295 -314
- package/package.json +6 -5
- package/phantomjs.js +144 -147
- package/proxy.js +10 -6
- package/remote/index.js +289 -238
- package/safari.js +326 -311
- package/test/chrome/options_test.js +11 -9
- package/test/element_finding_test.js +51 -13
- package/test/execute_script_test.js +17 -3
- package/test/firefox/firefox_test.js +0 -32
- package/test/http/http_test.js +671 -61
- package/test/http/util_test.js +25 -23
- package/test/io_test.js +67 -1
- package/test/lib/by_test.js +139 -0
- package/test/lib/capabilities_test.js +111 -0
- package/test/lib/error_test.js +325 -0
- package/test/lib/events_test.js +177 -0
- package/test/lib/logging_test.js +272 -0
- package/test/{promise_aplus_test.js → lib/promise_aplus_test.js} +4 -13
- package/test/lib/promise_error_test.js +808 -0
- package/test/lib/promise_flow_test.js +2282 -0
- package/test/lib/promise_generator_test.js +308 -0
- package/test/lib/promise_test.js +996 -0
- package/test/lib/testutil.js +90 -0
- package/test/lib/until_test.js +400 -0
- package/test/lib/webdriver_test.js +2157 -0
- package/test/page_loading_test.js +7 -9
- package/test/remote_test.js +50 -3
- package/test/session_test.js +53 -0
- package/test/stale_element_test.js +2 -2
- package/test/testing/assert_test.js +374 -0
- package/test/testing/index_test.js +9 -11
- package/testing/assert.js +334 -17
- package/testing/index.js +12 -2
- package/_base.js +0 -200
- package/docs/Changes.html +0 -356
- package/docs/class_bot_Error.html +0 -15
- package/docs/class_webdriver_ActionSequence.html +0 -115
- package/docs/class_webdriver_Alert.html +0 -24
- package/docs/class_webdriver_AlertPromise.html +0 -92
- package/docs/class_webdriver_Capabilities.html +0 -60
- package/docs/class_webdriver_Command.html +0 -15
- package/docs/class_webdriver_EventEmitter.html +0 -35
- package/docs/class_webdriver_FileDetector.html +0 -21
- package/docs/class_webdriver_Locator.html +0 -12
- package/docs/class_webdriver_Serializable.html +0 -9
- package/docs/class_webdriver_Session.html +0 -13
- package/docs/class_webdriver_TouchSequence.html +0 -49
- package/docs/class_webdriver_UnhandledAlertError.html +0 -18
- package/docs/class_webdriver_WebDriver.html +0 -313
- package/docs/class_webdriver_WebDriver_Logs.html +0 -15
- package/docs/class_webdriver_WebDriver_Navigation.html +0 -16
- package/docs/class_webdriver_WebDriver_Options.html +0 -41
- package/docs/class_webdriver_WebDriver_TargetLocator.html +0 -38
- package/docs/class_webdriver_WebDriver_Timeouts.html +0 -29
- package/docs/class_webdriver_WebDriver_Window.html +0 -27
- package/docs/class_webdriver_WebElement.html +0 -223
- package/docs/class_webdriver_WebElementPromise.html +0 -274
- package/docs/class_webdriver_http_Executor.html +0 -22
- package/docs/class_webdriver_http_Request.html +0 -12
- package/docs/class_webdriver_http_Response.html +0 -13
- package/docs/class_webdriver_logging_Entry.html +0 -15
- package/docs/class_webdriver_logging_Level.html +0 -55
- package/docs/class_webdriver_logging_LogRecord.html +0 -45
- package/docs/class_webdriver_logging_Logger.html +0 -119
- package/docs/class_webdriver_logging_Preferences.html +0 -8
- package/docs/class_webdriver_promise_CancellationError.html +0 -17
- package/docs/class_webdriver_promise_ControlFlow.html +0 -153
- package/docs/class_webdriver_promise_Deferred.html +0 -84
- package/docs/class_webdriver_promise_MultipleUnhandledRejectionError.html +0 -14
- package/docs/class_webdriver_promise_Promise.html +0 -75
- package/docs/class_webdriver_stacktrace_Frame.html +0 -20
- package/docs/class_webdriver_stacktrace_Snapshot.html +0 -6
- package/docs/class_webdriver_testing_Assertion.html +0 -99
- package/docs/class_webdriver_testing_Assertion_DelegatingMatcher_.html +0 -13
- package/docs/class_webdriver_testing_ContainsMatcher.html +0 -11
- package/docs/class_webdriver_testing_NegatedAssertion.html +0 -97
- package/docs/class_webdriver_until_Condition.html +0 -7
- package/docs/dossier.css +0 -1
- package/docs/dossier.js +0 -86
- package/docs/enum_bot_ErrorCode.html +0 -3
- package/docs/enum_bot_Error_State.html +0 -2
- package/docs/enum_webdriver_Browser.html +0 -2
- package/docs/enum_webdriver_Button.html +0 -2
- package/docs/enum_webdriver_Capability.html +0 -33
- package/docs/enum_webdriver_CommandName.html +0 -3
- package/docs/enum_webdriver_Key.html +0 -12
- package/docs/enum_webdriver_logging_Type.html +0 -6
- package/docs/enum_webdriver_promise_ControlFlow_EventType.html +0 -9
- package/docs/index.html +0 -125
- package/docs/interface_webdriver_CommandExecutor.html +0 -9
- package/docs/interface_webdriver_http_Client.html +0 -10
- package/docs/interface_webdriver_promise_Thenable.html +0 -77
- package/docs/module_selenium-webdriver.html +0 -23
- package/docs/module_selenium-webdriver__base.html +0 -23
- package/docs/module_selenium-webdriver__base_class_Context.html +0 -5
- package/docs/module_selenium-webdriver_builder.html +0 -2
- package/docs/module_selenium-webdriver_builder_class_Builder.html +0 -138
- package/docs/module_selenium-webdriver_chrome.html +0 -90
- package/docs/module_selenium-webdriver_chrome_class_Driver.html +0 -280
- package/docs/module_selenium-webdriver_chrome_class_Options.html +0 -127
- package/docs/module_selenium-webdriver_chrome_class_ServiceBuilder.html +0 -46
- package/docs/module_selenium-webdriver_class_ActionSequence.html +0 -115
- package/docs/module_selenium-webdriver_class_Builder.html +0 -138
- package/docs/module_selenium-webdriver_class_Capabilities.html +0 -60
- package/docs/module_selenium-webdriver_class_Command.html +0 -15
- package/docs/module_selenium-webdriver_class_EventEmitter.html +0 -35
- package/docs/module_selenium-webdriver_class_FileDetector.html +0 -21
- package/docs/module_selenium-webdriver_class_Serializable.html +0 -9
- package/docs/module_selenium-webdriver_class_Session.html +0 -13
- package/docs/module_selenium-webdriver_class_WebDriver.html +0 -313
- package/docs/module_selenium-webdriver_class_WebElement.html +0 -223
- package/docs/module_selenium-webdriver_class_WebElementPromise.html +0 -274
- package/docs/module_selenium-webdriver_enum_Browser.html +0 -2
- package/docs/module_selenium-webdriver_enum_Button.html +0 -2
- package/docs/module_selenium-webdriver_enum_Capability.html +0 -33
- package/docs/module_selenium-webdriver_enum_CommandName.html +0 -3
- package/docs/module_selenium-webdriver_enum_Key.html +0 -12
- package/docs/module_selenium-webdriver_error.html +0 -4
- package/docs/module_selenium-webdriver_error_class_Error.html +0 -15
- package/docs/module_selenium-webdriver_error_enum_ErrorCode.html +0 -3
- package/docs/module_selenium-webdriver_executors.html +0 -10
- package/docs/module_selenium-webdriver_executors_class_DeferredExecutor.html +0 -12
- package/docs/module_selenium-webdriver_firefox.html +0 -68
- package/docs/module_selenium-webdriver_firefox_binary.html +0 -5
- package/docs/module_selenium-webdriver_firefox_binary_class_Binary.html +0 -20
- package/docs/module_selenium-webdriver_firefox_class_Binary.html +0 -20
- package/docs/module_selenium-webdriver_firefox_class_Driver.html +0 -276
- package/docs/module_selenium-webdriver_firefox_class_Options.html +0 -19
- package/docs/module_selenium-webdriver_firefox_class_Profile.html +0 -50
- package/docs/module_selenium-webdriver_firefox_extension.html +0 -8
- package/docs/module_selenium-webdriver_firefox_profile.html +0 -13
- package/docs/module_selenium-webdriver_firefox_profile_class_Profile.html +0 -50
- package/docs/module_selenium-webdriver_http.html +0 -9
- package/docs/module_selenium-webdriver_http_class_Executor.html +0 -22
- package/docs/module_selenium-webdriver_http_class_HttpClient.html +0 -16
- package/docs/module_selenium-webdriver_http_class_Request.html +0 -12
- package/docs/module_selenium-webdriver_http_class_Response.html +0 -13
- package/docs/module_selenium-webdriver_http_util.html +0 -17
- package/docs/module_selenium-webdriver_ie.html +0 -11
- package/docs/module_selenium-webdriver_ie_class_Driver.html +0 -274
- package/docs/module_selenium-webdriver_ie_class_Options.html +0 -89
- package/docs/module_selenium-webdriver_ie_enum_Level.html +0 -1
- package/docs/module_selenium-webdriver_io.html +0 -37
- package/docs/module_selenium-webdriver_io_exec.html +0 -6
- package/docs/module_selenium-webdriver_namespace_By.html +0 -56
- package/docs/module_selenium-webdriver_namespace_error.html +0 -4
- package/docs/module_selenium-webdriver_namespace_logging.html +0 -18
- package/docs/module_selenium-webdriver_namespace_promise.html +0 -163
- package/docs/module_selenium-webdriver_namespace_stacktrace.html +0 -17
- package/docs/module_selenium-webdriver_namespace_until.html +0 -82
- package/docs/module_selenium-webdriver_net.html +0 -7
- package/docs/module_selenium-webdriver_net_portprober.html +0 -12
- package/docs/module_selenium-webdriver_opera.html +0 -62
- package/docs/module_selenium-webdriver_opera_class_Driver.html +0 -276
- package/docs/module_selenium-webdriver_opera_class_Options.html +0 -44
- package/docs/module_selenium-webdriver_opera_class_ServiceBuilder.html +0 -35
- package/docs/module_selenium-webdriver_phantomjs.html +0 -2
- package/docs/module_selenium-webdriver_phantomjs_class_Driver.html +0 -299
- package/docs/module_selenium-webdriver_proxy.html +0 -28
- package/docs/module_selenium-webdriver_remote.html +0 -8
- package/docs/module_selenium-webdriver_remote_class_DriverService.html +0 -32
- package/docs/module_selenium-webdriver_remote_class_FileDetector.html +0 -22
- package/docs/module_selenium-webdriver_remote_class_SeleniumServer.html +0 -41
- package/docs/module_selenium-webdriver_safari.html +0 -9
- package/docs/module_selenium-webdriver_safari_class_Driver.html +0 -279
- package/docs/module_selenium-webdriver_safari_class_Options.html +0 -23
- package/docs/module_selenium-webdriver_testing.html +0 -74
- package/docs/module_selenium-webdriver_testing_assert.html +0 -9
- package/docs/namespace_bot.html +0 -4
- package/docs/namespace_bot_json.html +0 -20
- package/docs/namespace_bot_response.html +0 -18
- package/docs/namespace_bot_userAgent.html +0 -33
- package/docs/namespace_webdriver.html +0 -30
- package/docs/namespace_webdriver_By.html +0 -56
- package/docs/namespace_webdriver_http.html +0 -6
- package/docs/namespace_webdriver_logging.html +0 -70
- package/docs/namespace_webdriver_promise.html +0 -688
- package/docs/namespace_webdriver_stacktrace.html +0 -17
- package/docs/namespace_webdriver_testing.html +0 -7
- package/docs/namespace_webdriver_testing_assert.html +0 -9
- package/docs/namespace_webdriver_testing_asserts.html +0 -18
- package/docs/namespace_webdriver_until.html +0 -82
- package/docs/source/_base.js.src.html +0 -1
- package/docs/source/builder.js.src.html +0 -1
- package/docs/source/chrome.js.src.html +0 -1
- package/docs/source/error.js.src.html +0 -1
- package/docs/source/executors.js.src.html +0 -1
- package/docs/source/firefox/binary.js.src.html +0 -1
- package/docs/source/firefox/extension.js.src.html +0 -1
- package/docs/source/firefox/index.js.src.html +0 -1
- package/docs/source/firefox/profile.js.src.html +0 -1
- package/docs/source/http/index.js.src.html +0 -1
- package/docs/source/http/util.js.src.html +0 -1
- package/docs/source/ie.js.src.html +0 -1
- package/docs/source/index.js.src.html +0 -1
- package/docs/source/io/exec.js.src.html +0 -1
- package/docs/source/io/index.js.src.html +0 -1
- package/docs/source/lib/atoms/error.js.src.html +0 -1
- package/docs/source/lib/atoms/json.js.src.html +0 -1
- package/docs/source/lib/atoms/response.js.src.html +0 -1
- package/docs/source/lib/atoms/userAgent.js.src.html +0 -1
- package/docs/source/lib/goog/array/array.js.src.html +0 -1
- package/docs/source/lib/goog/asserts/asserts.js.src.html +0 -1
- package/docs/source/lib/goog/async/freelist.js.src.html +0 -1
- package/docs/source/lib/goog/async/nexttick.js.src.html +0 -1
- package/docs/source/lib/goog/async/run.js.src.html +0 -1
- package/docs/source/lib/goog/async/workqueue.js.src.html +0 -1
- package/docs/source/lib/goog/base.js.src.html +0 -1
- package/docs/source/lib/goog/debug/debug.js.src.html +0 -1
- package/docs/source/lib/goog/debug/entrypointregistry.js.src.html +0 -1
- package/docs/source/lib/goog/debug/error.js.src.html +0 -1
- package/docs/source/lib/goog/debug/logbuffer.js.src.html +0 -1
- package/docs/source/lib/goog/debug/logger.js.src.html +0 -1
- package/docs/source/lib/goog/debug/logrecord.js.src.html +0 -1
- package/docs/source/lib/goog/deps.js.src.html +0 -1
- package/docs/source/lib/goog/disposable/disposable.js.src.html +0 -1
- package/docs/source/lib/goog/disposable/idisposable.js.src.html +0 -1
- package/docs/source/lib/goog/dom/browserfeature.js.src.html +0 -1
- package/docs/source/lib/goog/dom/dom.js.src.html +0 -1
- package/docs/source/lib/goog/dom/nodetype.js.src.html +0 -1
- package/docs/source/lib/goog/dom/safe.js.src.html +0 -1
- package/docs/source/lib/goog/dom/tagname.js.src.html +0 -1
- package/docs/source/lib/goog/dom/tags.js.src.html +0 -1
- package/docs/source/lib/goog/dom/vendor.js.src.html +0 -1
- package/docs/source/lib/goog/events/browserevent.js.src.html +0 -1
- package/docs/source/lib/goog/events/browserfeature.js.src.html +0 -1
- package/docs/source/lib/goog/events/event.js.src.html +0 -1
- package/docs/source/lib/goog/events/eventid.js.src.html +0 -1
- package/docs/source/lib/goog/events/events.js.src.html +0 -1
- package/docs/source/lib/goog/events/eventtarget.js.src.html +0 -1
- package/docs/source/lib/goog/events/eventtype.js.src.html +0 -1
- package/docs/source/lib/goog/events/keycodes.js.src.html +0 -1
- package/docs/source/lib/goog/events/listenable.js.src.html +0 -1
- package/docs/source/lib/goog/events/listener.js.src.html +0 -1
- package/docs/source/lib/goog/events/listenermap.js.src.html +0 -1
- package/docs/source/lib/goog/fs/url.js.src.html +0 -1
- package/docs/source/lib/goog/functions/functions.js.src.html +0 -1
- package/docs/source/lib/goog/html/safehtml.js.src.html +0 -1
- package/docs/source/lib/goog/html/safescript.js.src.html +0 -1
- package/docs/source/lib/goog/html/safestyle.js.src.html +0 -1
- package/docs/source/lib/goog/html/safestylesheet.js.src.html +0 -1
- package/docs/source/lib/goog/html/safeurl.js.src.html +0 -1
- package/docs/source/lib/goog/html/trustedresourceurl.js.src.html +0 -1
- package/docs/source/lib/goog/html/uncheckedconversions.js.src.html +0 -1
- package/docs/source/lib/goog/i18n/bidi.js.src.html +0 -1
- package/docs/source/lib/goog/iter/iter.js.src.html +0 -1
- package/docs/source/lib/goog/json/json.js.src.html +0 -1
- package/docs/source/lib/goog/labs/testing/assertthat.js.src.html +0 -1
- package/docs/source/lib/goog/labs/testing/logicmatcher.js.src.html +0 -1
- package/docs/source/lib/goog/labs/testing/matcher.js.src.html +0 -1
- package/docs/source/lib/goog/labs/testing/numbermatcher.js.src.html +0 -1
- package/docs/source/lib/goog/labs/testing/objectmatcher.js.src.html +0 -1
- package/docs/source/lib/goog/labs/testing/stringmatcher.js.src.html +0 -1
- package/docs/source/lib/goog/labs/useragent/browser.js.src.html +0 -1
- package/docs/source/lib/goog/labs/useragent/engine.js.src.html +0 -1
- package/docs/source/lib/goog/labs/useragent/platform.js.src.html +0 -1
- package/docs/source/lib/goog/labs/useragent/util.js.src.html +0 -1
- package/docs/source/lib/goog/log/log.js.src.html +0 -1
- package/docs/source/lib/goog/math/box.js.src.html +0 -1
- package/docs/source/lib/goog/math/coordinate.js.src.html +0 -1
- package/docs/source/lib/goog/math/math.js.src.html +0 -1
- package/docs/source/lib/goog/math/rect.js.src.html +0 -1
- package/docs/source/lib/goog/math/size.js.src.html +0 -1
- package/docs/source/lib/goog/net/wrapperxmlhttpfactory.js.src.html +0 -1
- package/docs/source/lib/goog/net/xhrlike.js.src.html +0 -1
- package/docs/source/lib/goog/net/xmlhttp.js.src.html +0 -1
- package/docs/source/lib/goog/net/xmlhttpfactory.js.src.html +0 -1
- package/docs/source/lib/goog/object/object.js.src.html +0 -1
- package/docs/source/lib/goog/promise/promise.js.src.html +0 -1
- package/docs/source/lib/goog/promise/resolver.js.src.html +0 -1
- package/docs/source/lib/goog/promise/thenable.js.src.html +0 -1
- package/docs/source/lib/goog/reflect/reflect.js.src.html +0 -1
- package/docs/source/lib/goog/string/const.js.src.html +0 -1
- package/docs/source/lib/goog/string/string.js.src.html +0 -1
- package/docs/source/lib/goog/string/typedstring.js.src.html +0 -1
- package/docs/source/lib/goog/structs/collection.js.src.html +0 -1
- package/docs/source/lib/goog/structs/map.js.src.html +0 -1
- package/docs/source/lib/goog/structs/set.js.src.html +0 -1
- package/docs/source/lib/goog/structs/structs.js.src.html +0 -1
- package/docs/source/lib/goog/style/style.js.src.html +0 -1
- package/docs/source/lib/goog/testing/asserts.js.src.html +0 -1
- package/docs/source/lib/goog/testing/events/events.js.src.html +0 -1
- package/docs/source/lib/goog/testing/functionmock.js.src.html +0 -1
- package/docs/source/lib/goog/testing/jsunit.js.src.html +0 -1
- package/docs/source/lib/goog/testing/loosemock.js.src.html +0 -1
- package/docs/source/lib/goog/testing/mock.js.src.html +0 -1
- package/docs/source/lib/goog/testing/mockclock.js.src.html +0 -1
- package/docs/source/lib/goog/testing/mockcontrol.js.src.html +0 -1
- package/docs/source/lib/goog/testing/mockinterface.js.src.html +0 -1
- package/docs/source/lib/goog/testing/mockmatchers.js.src.html +0 -1
- package/docs/source/lib/goog/testing/objectpropertystring.js.src.html +0 -1
- package/docs/source/lib/goog/testing/propertyreplacer.js.src.html +0 -1
- package/docs/source/lib/goog/testing/recordfunction.js.src.html +0 -1
- package/docs/source/lib/goog/testing/stacktrace.js.src.html +0 -1
- package/docs/source/lib/goog/testing/strictmock.js.src.html +0 -1
- package/docs/source/lib/goog/testing/testcase.js.src.html +0 -1
- package/docs/source/lib/goog/testing/testrunner.js.src.html +0 -1
- package/docs/source/lib/goog/uri/uri.js.src.html +0 -1
- package/docs/source/lib/goog/uri/utils.js.src.html +0 -1
- package/docs/source/lib/goog/useragent/product.js.src.html +0 -1
- package/docs/source/lib/goog/useragent/product_isversion.js.src.html +0 -1
- package/docs/source/lib/goog/useragent/useragent.js.src.html +0 -1
- package/docs/source/lib/webdriver/actionsequence.js.src.html +0 -1
- package/docs/source/lib/webdriver/button.js.src.html +0 -1
- package/docs/source/lib/webdriver/capabilities.js.src.html +0 -1
- package/docs/source/lib/webdriver/command.js.src.html +0 -1
- package/docs/source/lib/webdriver/events.js.src.html +0 -1
- package/docs/source/lib/webdriver/http/http.js.src.html +0 -1
- package/docs/source/lib/webdriver/key.js.src.html +0 -1
- package/docs/source/lib/webdriver/locators.js.src.html +0 -1
- package/docs/source/lib/webdriver/logging.js.src.html +0 -1
- package/docs/source/lib/webdriver/promise.js.src.html +0 -1
- package/docs/source/lib/webdriver/serializable.js.src.html +0 -1
- package/docs/source/lib/webdriver/session.js.src.html +0 -1
- package/docs/source/lib/webdriver/stacktrace.js.src.html +0 -1
- package/docs/source/lib/webdriver/testing/asserts.js.src.html +0 -1
- package/docs/source/lib/webdriver/touchsequence.js.src.html +0 -1
- package/docs/source/lib/webdriver/until.js.src.html +0 -1
- package/docs/source/lib/webdriver/webdriver.js.src.html +0 -1
- package/docs/source/net/index.js.src.html +0 -1
- package/docs/source/net/portprober.js.src.html +0 -1
- package/docs/source/opera.js.src.html +0 -1
- package/docs/source/phantomjs.js.src.html +0 -1
- package/docs/source/proxy.js.src.html +0 -1
- package/docs/source/remote/index.js.src.html +0 -1
- package/docs/source/safari.js.src.html +0 -1
- package/docs/source/testing/assert.js.src.html +0 -1
- package/docs/source/testing/index.js.src.html +0 -1
- package/docs/types.js +0 -1
- package/lib/atoms/error.js +0 -202
- package/lib/atoms/json.js +0 -80
- package/lib/atoms/response.js +0 -110
- package/lib/atoms/userAgent.js +0 -257
- package/lib/goog/LICENSE +0 -176
- package/lib/goog/array/array.js +0 -1654
- package/lib/goog/asserts/asserts.js +0 -365
- package/lib/goog/async/freelist.js +0 -88
- package/lib/goog/async/nexttick.js +0 -241
- package/lib/goog/async/run.js +0 -133
- package/lib/goog/async/workqueue.js +0 -139
- package/lib/goog/base.js +0 -2548
- package/lib/goog/debug/debug.js +0 -653
- package/lib/goog/debug/entrypointregistry.js +0 -158
- package/lib/goog/debug/error.js +0 -63
- package/lib/goog/debug/logbuffer.js +0 -148
- package/lib/goog/debug/logger.js +0 -873
- package/lib/goog/debug/logrecord.js +0 -242
- package/lib/goog/deps.js +0 -151
- package/lib/goog/disposable/disposable.js +0 -307
- package/lib/goog/disposable/idisposable.js +0 -45
- package/lib/goog/dom/browserfeature.js +0 -72
- package/lib/goog/dom/dom.js +0 -2991
- package/lib/goog/dom/nodetype.js +0 -48
- package/lib/goog/dom/safe.js +0 -347
- package/lib/goog/dom/tagname.js +0 -160
- package/lib/goog/dom/tags.js +0 -41
- package/lib/goog/dom/vendor.js +0 -96
- package/lib/goog/events/browserevent.js +0 -400
- package/lib/goog/events/browserfeature.js +0 -85
- package/lib/goog/events/event.js +0 -143
- package/lib/goog/events/eventid.js +0 -47
- package/lib/goog/events/events.js +0 -984
- package/lib/goog/events/eventtarget.js +0 -394
- package/lib/goog/events/eventtype.js +0 -237
- package/lib/goog/events/keycodes.js +0 -427
- package/lib/goog/events/listenable.js +0 -335
- package/lib/goog/events/listener.js +0 -131
- package/lib/goog/events/listenermap.js +0 -308
- package/lib/goog/fs/url.js +0 -109
- package/lib/goog/functions/functions.js +0 -442
- package/lib/goog/html/safehtml.js +0 -757
- package/lib/goog/html/safescript.js +0 -234
- package/lib/goog/html/safestyle.js +0 -442
- package/lib/goog/html/safestylesheet.js +0 -276
- package/lib/goog/html/safeurl.js +0 -398
- package/lib/goog/html/trustedresourceurl.js +0 -224
- package/lib/goog/html/uncheckedconversions.js +0 -232
- package/lib/goog/i18n/bidi.js +0 -908
- package/lib/goog/iter/iter.js +0 -1302
- package/lib/goog/json/json.js +0 -363
- package/lib/goog/labs/testing/assertthat.js +0 -58
- package/lib/goog/labs/testing/logicmatcher.js +0 -212
- package/lib/goog/labs/testing/matcher.js +0 -80
- package/lib/goog/labs/testing/numbermatcher.js +0 -346
- package/lib/goog/labs/testing/objectmatcher.js +0 -317
- package/lib/goog/labs/testing/stringmatcher.js +0 -415
- package/lib/goog/labs/useragent/browser.js +0 -341
- package/lib/goog/labs/useragent/engine.js +0 -160
- package/lib/goog/labs/useragent/platform.js +0 -160
- package/lib/goog/labs/useragent/util.js +0 -148
- package/lib/goog/log/log.js +0 -197
- package/lib/goog/math/box.js +0 -398
- package/lib/goog/math/coordinate.js +0 -268
- package/lib/goog/math/math.js +0 -451
- package/lib/goog/math/rect.js +0 -476
- package/lib/goog/math/size.js +0 -227
- package/lib/goog/net/wrapperxmlhttpfactory.js +0 -71
- package/lib/goog/net/xhrlike.js +0 -124
- package/lib/goog/net/xmlhttp.js +0 -246
- package/lib/goog/net/xmlhttpfactory.js +0 -67
- package/lib/goog/object/object.js +0 -686
- package/lib/goog/promise/promise.js +0 -1350
- package/lib/goog/promise/resolver.js +0 -48
- package/lib/goog/promise/thenable.js +0 -126
- package/lib/goog/reflect/reflect.js +0 -77
- package/lib/goog/string/const.js +0 -182
- package/lib/goog/string/string.js +0 -1599
- package/lib/goog/string/typedstring.js +0 -48
- package/lib/goog/structs/collection.js +0 -56
- package/lib/goog/structs/map.js +0 -457
- package/lib/goog/structs/set.js +0 -279
- package/lib/goog/structs/structs.js +0 -354
- package/lib/goog/style/style.js +0 -2037
- package/lib/goog/testing/asserts.js +0 -1278
- package/lib/goog/testing/events/events.js +0 -767
- package/lib/goog/testing/functionmock.js +0 -175
- package/lib/goog/testing/jsunit.js +0 -162
- package/lib/goog/testing/loosemock.js +0 -242
- package/lib/goog/testing/mock.js +0 -645
- package/lib/goog/testing/mockclock.js +0 -606
- package/lib/goog/testing/mockcontrol.js +0 -220
- package/lib/goog/testing/mockinterface.js +0 -45
- package/lib/goog/testing/mockmatchers.js +0 -400
- package/lib/goog/testing/objectpropertystring.js +0 -68
- package/lib/goog/testing/propertyreplacer.js +0 -262
- package/lib/goog/testing/recordfunction.js +0 -215
- package/lib/goog/testing/stacktrace.js +0 -594
- package/lib/goog/testing/strictmock.js +0 -130
- package/lib/goog/testing/testcase.js +0 -1629
- package/lib/goog/testing/testrunner.js +0 -440
- package/lib/goog/uri/uri.js +0 -1524
- package/lib/goog/uri/utils.js +0 -1064
- package/lib/goog/useragent/product.js +0 -183
- package/lib/goog/useragent/product_isversion.js +0 -144
- package/lib/goog/useragent/useragent.js +0 -572
- package/lib/webdriver/actionsequence.js +0 -356
- package/lib/webdriver/builder.js +0 -207
- package/lib/webdriver/capabilities.js +0 -412
- package/lib/webdriver/events.js +0 -179
- package/lib/webdriver/firefoxdomexecutor.js +0 -175
- package/lib/webdriver/http/corsclient.js +0 -133
- package/lib/webdriver/http/http.js +0 -525
- package/lib/webdriver/http/xhrclient.js +0 -67
- package/lib/webdriver/locators.js +0 -257
- package/lib/webdriver/logging.js +0 -347
- package/lib/webdriver/session.js +0 -74
- package/lib/webdriver/stacktrace.js +0 -619
- package/lib/webdriver/test/builder_test.js +0 -53
- package/lib/webdriver/test/capabilities_test.js +0 -72
- package/lib/webdriver/test/events_test.js +0 -203
- package/lib/webdriver/test/http/corsclient_test.js +0 -151
- package/lib/webdriver/test/http/http_test.js +0 -428
- package/lib/webdriver/test/http/xhrclient_test.js +0 -196
- package/lib/webdriver/test/locators_test.js +0 -59
- package/lib/webdriver/test/logging_test.js +0 -85
- package/lib/webdriver/test/promise_error_test.js +0 -892
- package/lib/webdriver/test/promise_flow_test.js +0 -2365
- package/lib/webdriver/test/promise_generator_test.js +0 -323
- package/lib/webdriver/test/promise_test.js +0 -2012
- package/lib/webdriver/test/stacktrace_test.js +0 -480
- package/lib/webdriver/test/test_bootstrap.js +0 -67
- package/lib/webdriver/test/testing/asserts_test.js +0 -117
- package/lib/webdriver/test/testing/client_test.js +0 -88
- package/lib/webdriver/test/testing/testcase_test.js +0 -229
- package/lib/webdriver/test/testutil.js +0 -209
- package/lib/webdriver/test/testutil_test.js +0 -104
- package/lib/webdriver/test/until_test.js +0 -411
- package/lib/webdriver/test/webdriver_generator_test.js +0 -92
- package/lib/webdriver/test/webdriver_test.js +0 -2369
- package/lib/webdriver/testing/asserts.js +0 -487
- package/lib/webdriver/testing/client.js +0 -179
- package/lib/webdriver/testing/jsunit.js +0 -363
- package/lib/webdriver/testing/testcase.js +0 -168
- package/lib/webdriver/testing/window.js +0 -244
- package/lib/webdriver/touchsequence.js +0 -248
- package/lib/webdriver/until.js +0 -412
- package/lib/webdriver/webdriver.js +0 -2511
- package/test/_base_test.js +0 -129
package/ie.js
CHANGED
|
@@ -27,21 +27,19 @@
|
|
|
27
27
|
|
|
28
28
|
'use strict';
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
const fs = require('fs'),
|
|
31
31
|
util = require('util');
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
executors = require('./executors'),
|
|
33
|
+
const executors = require('./executors'),
|
|
35
34
|
io = require('./io'),
|
|
35
|
+
capabilities = require('./lib/capabilities'),
|
|
36
|
+
promise = require('./lib/promise'),
|
|
37
|
+
webdriver = require('./lib/webdriver'),
|
|
36
38
|
portprober = require('./net/portprober'),
|
|
37
39
|
remote = require('./remote');
|
|
38
40
|
|
|
39
41
|
|
|
40
|
-
|
|
41
|
-
* @const
|
|
42
|
-
* @final
|
|
43
|
-
*/
|
|
44
|
-
var IEDRIVER_EXE = 'IEDriverServer.exe';
|
|
42
|
+
const IEDRIVER_EXE = 'IEDriverServer.exe';
|
|
45
43
|
|
|
46
44
|
|
|
47
45
|
|
|
@@ -49,7 +47,7 @@ var IEDRIVER_EXE = 'IEDriverServer.exe';
|
|
|
49
47
|
* IEDriverServer logging levels.
|
|
50
48
|
* @enum {string}
|
|
51
49
|
*/
|
|
52
|
-
|
|
50
|
+
const Level = {
|
|
53
51
|
FATAL: 'FATAL',
|
|
54
52
|
ERROR: 'ERROR',
|
|
55
53
|
WARN: 'WARN',
|
|
@@ -65,7 +63,7 @@ var Level = {
|
|
|
65
63
|
* https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities#ie-specific
|
|
66
64
|
* @enum {string}
|
|
67
65
|
*/
|
|
68
|
-
|
|
66
|
+
const Key = {
|
|
69
67
|
IGNORE_PROTECTED_MODE_SETTINGS: 'ignoreProtectedModeSettings',
|
|
70
68
|
IGNORE_ZOOM_SETTING: 'ignoreZoomSetting',
|
|
71
69
|
INITIAL_BROWSER_URL: 'initialBrowserUrl',
|
|
@@ -87,290 +85,271 @@ var Key = {
|
|
|
87
85
|
|
|
88
86
|
/**
|
|
89
87
|
* Class for managing IEDriver specific options.
|
|
90
|
-
* @constructor
|
|
91
88
|
*/
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
/** @private {(webdriver.ProxyConfig|null)} */
|
|
97
|
-
this.proxy_ = null;
|
|
98
|
-
};
|
|
99
|
-
|
|
89
|
+
class Options {
|
|
90
|
+
constructor() {
|
|
91
|
+
/** @private {!Object<(boolean|number|string|!Array<string>)>} */
|
|
92
|
+
this.options_ = {};
|
|
100
93
|
|
|
94
|
+
/** @private {(capabilities.ProxyConfig|null)} */
|
|
95
|
+
this.proxy_ = null;
|
|
96
|
+
}
|
|
101
97
|
|
|
102
|
-
/**
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
98
|
+
/**
|
|
99
|
+
* Extracts the IEDriver specific options from the given capabilities
|
|
100
|
+
* object.
|
|
101
|
+
* @param {!capabilities.Capabilities} caps The capabilities object.
|
|
102
|
+
* @return {!Options} The IEDriver options.
|
|
103
|
+
*/
|
|
104
|
+
static fromCapabilities(caps) {
|
|
105
|
+
var options = new Options();
|
|
106
|
+
var map = options.options_;
|
|
107
|
+
|
|
108
|
+
Object.keys(Key).forEach(function(key) {
|
|
109
|
+
key = Key[key];
|
|
110
|
+
if (caps.has(key)) {
|
|
111
|
+
map[key] = caps.get(key);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
if (caps.has(capabilities.Capability.PROXY)) {
|
|
116
|
+
options.setProxy(caps.get(capabilities.Capability.PROXY));
|
|
116
117
|
}
|
|
117
|
-
});
|
|
118
118
|
|
|
119
|
-
|
|
120
|
-
options.setProxy(capabilities.get(webdriver.Capability.PROXY));
|
|
119
|
+
return options;
|
|
121
120
|
}
|
|
122
121
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
Options.prototype.introduceFlakinessByIgnoringProtectedModeSettings =
|
|
140
|
-
function(ignoreSettings) {
|
|
141
|
-
this.options_[Key.IGNORE_PROTECTED_MODE_SETTINGS] = !!ignoreSettings;
|
|
142
|
-
return this;
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Indicates whether to skip the check that the browser's zoom level is set to
|
|
148
|
-
* 100%.
|
|
149
|
-
*
|
|
150
|
-
* @parm {boolean} ignore Whether to ignore the browser's zoom level settings.
|
|
151
|
-
* @return {!Options} A self reference.
|
|
152
|
-
*/
|
|
153
|
-
Options.prototype.ignoreZoomSetting = function(ignore) {
|
|
154
|
-
this.options_[Key.IGNORE_ZOOM_SETTING] = !!ignore;
|
|
155
|
-
return this;
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Sets the initial URL loaded when IE starts. This is intended to be used with
|
|
161
|
-
* {@link #ignoreProtectedModeSettings} to allow the user to initialize IE in
|
|
162
|
-
* the proper Protected Mode zone. Setting this option may cause browser
|
|
163
|
-
* instability or flaky and unresponsive code. Only "best effort" support is
|
|
164
|
-
* provided when using this option.
|
|
165
|
-
*
|
|
166
|
-
* @param {string} url The initial browser URL.
|
|
167
|
-
* @return {!Options} A self reference.
|
|
168
|
-
*/
|
|
169
|
-
Options.prototype.initialBrowserUrl = function(url) {
|
|
170
|
-
this.options_[Key.INITIAL_BROWSER_URL] = url;
|
|
171
|
-
return this;
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* Configures whether to enable persistent mouse hovering (true by default).
|
|
177
|
-
* Persistent hovering is achieved by continuously firing mouse over events at
|
|
178
|
-
* the last location the mouse cursor has been moved to.
|
|
179
|
-
*
|
|
180
|
-
* @param {boolean} enable Whether to enable persistent hovering.
|
|
181
|
-
* @return {!Options} A self reference.
|
|
182
|
-
*/
|
|
183
|
-
Options.prototype.enablePersistentHover = function(enable) {
|
|
184
|
-
this.options_[Key.ENABLE_PERSISTENT_HOVER] = !!enable;
|
|
185
|
-
return this;
|
|
186
|
-
};
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Configures whether the driver should attempt to remove obsolete
|
|
191
|
-
* {@linkplain webdriver.WebElement WebElements} from its internal cache on
|
|
192
|
-
* page navigation (true by default). Disabling this option will cause the
|
|
193
|
-
* driver to run with a larger memory footprint.
|
|
194
|
-
*
|
|
195
|
-
* @param {boolean} enable Whether to enable element reference cleanup.
|
|
196
|
-
* @return {!Options} A self reference.
|
|
197
|
-
*/
|
|
198
|
-
Options.prototype.enableElementCacheCleanup = function(enable) {
|
|
199
|
-
this.options_[Key.ENABLE_ELEMENT_CACHE_CLEANUP] = !!enable;
|
|
200
|
-
return this;
|
|
201
|
-
};
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Configures whether to require the IE window to have input focus before
|
|
206
|
-
* performing any user interactions (i.e. mouse or keyboard events). This
|
|
207
|
-
* option is disabled by default, but delivers much more accurate interaction
|
|
208
|
-
* events when enabled.
|
|
209
|
-
*
|
|
210
|
-
* @param {boolean} require Whether to require window focus.
|
|
211
|
-
* @return {!Options} A self reference.
|
|
212
|
-
*/
|
|
213
|
-
Options.prototype.requireWindowFocus = function(require) {
|
|
214
|
-
this.options_[Key.REQUIRE_WINDOW_FOCUS] = !!require;
|
|
215
|
-
return this;
|
|
216
|
-
};
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
* Configures the timeout, in milliseconds, that the driver will attempt to
|
|
221
|
-
* located and attach to a newly opened instance of Internet Explorer. The
|
|
222
|
-
* default is zero, which indicates waiting indefinitely.
|
|
223
|
-
*
|
|
224
|
-
* @param {number} timeout How long to wait for IE.
|
|
225
|
-
* @return {!Options} A self reference.
|
|
226
|
-
*/
|
|
227
|
-
Options.prototype.browserAttachTimeout = function(timeout) {
|
|
228
|
-
this.options_[Key.BROWSER_ATTACH_TIMEOUT] = Math.max(timeout, 0);
|
|
229
|
-
return this;
|
|
230
|
-
};
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* Configures whether to launch Internet Explorer using the CreateProcess API.
|
|
235
|
-
* If this option is not specified, IE is launched using IELaunchURL, if
|
|
236
|
-
* available. For IE 8 and above, this option requires the TabProcGrowth
|
|
237
|
-
* registry value to be set to 0.
|
|
238
|
-
*
|
|
239
|
-
* @param {boolean} force Whether to use the CreateProcess API.
|
|
240
|
-
* @return {!Options} A self reference.
|
|
241
|
-
*/
|
|
242
|
-
Options.prototype.forceCreateProcessApi = function(force) {
|
|
243
|
-
this.options_[Key.FORCE_CREATE_PROCESS] = !!force;
|
|
244
|
-
return this;
|
|
245
|
-
};
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* Specifies command-line switches to use when launching Internet Explorer.
|
|
250
|
-
* This is only valid when used with {@link #forceCreateProcessApi}.
|
|
251
|
-
*
|
|
252
|
-
* @param {...(string|!Array.<string>)} var_args The arguments to add.
|
|
253
|
-
* @return {!Options} A self reference.
|
|
254
|
-
*/
|
|
255
|
-
Options.prototype.addArguments = function(var_args) {
|
|
256
|
-
var args = this.options_[Key.BROWSER_COMMAND_LINE_SWITCHES] || [];
|
|
257
|
-
args = args.concat.apply(args, arguments);
|
|
258
|
-
this.options_[Key.BROWSER_COMMAND_LINE_SWITCHES] = args;
|
|
259
|
-
return this;
|
|
260
|
-
};
|
|
261
|
-
|
|
122
|
+
/**
|
|
123
|
+
* Whether to disable the protected mode settings check when the session is
|
|
124
|
+
* created. Disbling this setting may lead to significant instability as the
|
|
125
|
+
* browser may become unresponsive/hang. Only "best effort" support is provided
|
|
126
|
+
* when using this capability.
|
|
127
|
+
*
|
|
128
|
+
* For more information, refer to the IEDriver's
|
|
129
|
+
* [required system configuration](http://goo.gl/eH0Yi3).
|
|
130
|
+
*
|
|
131
|
+
* @param {boolean} ignoreSettings Whether to ignore protected mode settings.
|
|
132
|
+
* @return {!Options} A self reference.
|
|
133
|
+
*/
|
|
134
|
+
introduceFlakinessByIgnoringProtectedModeSettings(ignoreSettings) {
|
|
135
|
+
this.options_[Key.IGNORE_PROTECTED_MODE_SETTINGS] = !!ignoreSettings;
|
|
136
|
+
return this;
|
|
137
|
+
}
|
|
262
138
|
|
|
263
|
-
/**
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
};
|
|
139
|
+
/**
|
|
140
|
+
* Indicates whether to skip the check that the browser's zoom level is set to
|
|
141
|
+
* 100%.
|
|
142
|
+
*
|
|
143
|
+
* @param {boolean} ignore Whether to ignore the browser's zoom level settings.
|
|
144
|
+
* @return {!Options} A self reference.
|
|
145
|
+
*/
|
|
146
|
+
ignoreZoomSetting(ignore) {
|
|
147
|
+
this.options_[Key.IGNORE_ZOOM_SETTING] = !!ignore;
|
|
148
|
+
return this;
|
|
149
|
+
}
|
|
275
150
|
|
|
151
|
+
/**
|
|
152
|
+
* Sets the initial URL loaded when IE starts. This is intended to be used with
|
|
153
|
+
* {@link #ignoreProtectedModeSettings} to allow the user to initialize IE in
|
|
154
|
+
* the proper Protected Mode zone. Setting this option may cause browser
|
|
155
|
+
* instability or flaky and unresponsive code. Only "best effort" support is
|
|
156
|
+
* provided when using this option.
|
|
157
|
+
*
|
|
158
|
+
* @param {string} url The initial browser URL.
|
|
159
|
+
* @return {!Options} A self reference.
|
|
160
|
+
*/
|
|
161
|
+
initialBrowserUrl(url) {
|
|
162
|
+
this.options_[Key.INITIAL_BROWSER_URL] = url;
|
|
163
|
+
return this;
|
|
164
|
+
}
|
|
276
165
|
|
|
277
|
-
/**
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
};
|
|
166
|
+
/**
|
|
167
|
+
* Configures whether to enable persistent mouse hovering (true by default).
|
|
168
|
+
* Persistent hovering is achieved by continuously firing mouse over events at
|
|
169
|
+
* the last location the mouse cursor has been moved to.
|
|
170
|
+
*
|
|
171
|
+
* @param {boolean} enable Whether to enable persistent hovering.
|
|
172
|
+
* @return {!Options} A self reference.
|
|
173
|
+
*/
|
|
174
|
+
enablePersistentHover(enable) {
|
|
175
|
+
this.options_[Key.ENABLE_PERSISTENT_HOVER] = !!enable;
|
|
176
|
+
return this;
|
|
177
|
+
}
|
|
290
178
|
|
|
179
|
+
/**
|
|
180
|
+
* Configures whether the driver should attempt to remove obsolete
|
|
181
|
+
* {@linkplain webdriver.WebElement WebElements} from its internal cache on
|
|
182
|
+
* page navigation (true by default). Disabling this option will cause the
|
|
183
|
+
* driver to run with a larger memory footprint.
|
|
184
|
+
*
|
|
185
|
+
* @param {boolean} enable Whether to enable element reference cleanup.
|
|
186
|
+
* @return {!Options} A self reference.
|
|
187
|
+
*/
|
|
188
|
+
enableElementCacheCleanup(enable) {
|
|
189
|
+
this.options_[Key.ENABLE_ELEMENT_CACHE_CLEANUP] = !!enable;
|
|
190
|
+
return this;
|
|
191
|
+
}
|
|
291
192
|
|
|
292
|
-
/**
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
193
|
+
/**
|
|
194
|
+
* Configures whether to require the IE window to have input focus before
|
|
195
|
+
* performing any user interactions (i.e. mouse or keyboard events). This
|
|
196
|
+
* option is disabled by default, but delivers much more accurate interaction
|
|
197
|
+
* events when enabled.
|
|
198
|
+
*
|
|
199
|
+
* @param {boolean} require Whether to require window focus.
|
|
200
|
+
* @return {!Options} A self reference.
|
|
201
|
+
*/
|
|
202
|
+
requireWindowFocus(require) {
|
|
203
|
+
this.options_[Key.REQUIRE_WINDOW_FOCUS] = !!require;
|
|
204
|
+
return this;
|
|
205
|
+
}
|
|
301
206
|
|
|
207
|
+
/**
|
|
208
|
+
* Configures the timeout, in milliseconds, that the driver will attempt to
|
|
209
|
+
* located and attach to a newly opened instance of Internet Explorer. The
|
|
210
|
+
* default is zero, which indicates waiting indefinitely.
|
|
211
|
+
*
|
|
212
|
+
* @param {number} timeout How long to wait for IE.
|
|
213
|
+
* @return {!Options} A self reference.
|
|
214
|
+
*/
|
|
215
|
+
browserAttachTimeout(timeout) {
|
|
216
|
+
this.options_[Key.BROWSER_ATTACH_TIMEOUT] = Math.max(timeout, 0);
|
|
217
|
+
return this;
|
|
218
|
+
}
|
|
302
219
|
|
|
303
|
-
/**
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
220
|
+
/**
|
|
221
|
+
* Configures whether to launch Internet Explorer using the CreateProcess API.
|
|
222
|
+
* If this option is not specified, IE is launched using IELaunchURL, if
|
|
223
|
+
* available. For IE 8 and above, this option requires the TabProcGrowth
|
|
224
|
+
* registry value to be set to 0.
|
|
225
|
+
*
|
|
226
|
+
* @param {boolean} force Whether to use the CreateProcess API.
|
|
227
|
+
* @return {!Options} A self reference.
|
|
228
|
+
*/
|
|
229
|
+
forceCreateProcessApi(force) {
|
|
230
|
+
this.options_[Key.FORCE_CREATE_PROCESS] = !!force;
|
|
231
|
+
return this;
|
|
232
|
+
}
|
|
312
233
|
|
|
234
|
+
/**
|
|
235
|
+
* Specifies command-line switches to use when launching Internet Explorer.
|
|
236
|
+
* This is only valid when used with {@link #forceCreateProcessApi}.
|
|
237
|
+
*
|
|
238
|
+
* @param {...(string|!Array.<string>)} var_args The arguments to add.
|
|
239
|
+
* @return {!Options} A self reference.
|
|
240
|
+
*/
|
|
241
|
+
addArguments(var_args) {
|
|
242
|
+
var args = this.options_[Key.BROWSER_COMMAND_LINE_SWITCHES] || [];
|
|
243
|
+
args = args.concat.apply(args, arguments);
|
|
244
|
+
this.options_[Key.BROWSER_COMMAND_LINE_SWITCHES] = args;
|
|
245
|
+
return this;
|
|
246
|
+
}
|
|
313
247
|
|
|
314
|
-
/**
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
248
|
+
/**
|
|
249
|
+
* Configures whether proxies should be configured on a per-process basis. If
|
|
250
|
+
* not set, setting a {@linkplain #setProxy proxy} will configure the system
|
|
251
|
+
* proxy. The default behavior is to use the system proxy.
|
|
252
|
+
*
|
|
253
|
+
* @param {boolean} enable Whether to enable per-process proxy settings.
|
|
254
|
+
* @return {!Options} A self reference.
|
|
255
|
+
*/
|
|
256
|
+
usePerProcessProxy(enable) {
|
|
257
|
+
this.options_[Key.USE_PER_PROCESS_PROXY] = !!enable;
|
|
258
|
+
return this;
|
|
259
|
+
}
|
|
323
260
|
|
|
261
|
+
/**
|
|
262
|
+
* Configures whether to clear the cache, cookies, history, and saved form data
|
|
263
|
+
* before starting the browser. _Using this capability will clear session data
|
|
264
|
+
* for all running instances of Internet Explorer, including those started
|
|
265
|
+
* manually._
|
|
266
|
+
*
|
|
267
|
+
* @param {boolean} cleanSession Whether to clear all session data on startup.
|
|
268
|
+
* @return {!Options} A self reference.
|
|
269
|
+
*/
|
|
270
|
+
ensureCleanSession(cleanSession) {
|
|
271
|
+
this.options_[Key.ENSURE_CLEAN_SESSION] = !!cleanSession;
|
|
272
|
+
return this;
|
|
273
|
+
}
|
|
324
274
|
|
|
325
|
-
/**
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
}
|
|
275
|
+
/**
|
|
276
|
+
* Sets the path to the log file the driver should log to.
|
|
277
|
+
* @param {string} file The log file path.
|
|
278
|
+
* @return {!Options} A self reference.
|
|
279
|
+
*/
|
|
280
|
+
setLogFile(file) {
|
|
281
|
+
this.options_[Key.LOG_FILE] = file;
|
|
282
|
+
return this;
|
|
283
|
+
}
|
|
334
284
|
|
|
285
|
+
/**
|
|
286
|
+
* Sets the IEDriverServer's logging {@linkplain Level level}.
|
|
287
|
+
* @param {Level} level The logging level.
|
|
288
|
+
* @return {!Options} A self reference.
|
|
289
|
+
*/
|
|
290
|
+
setLogLevel(level) {
|
|
291
|
+
this.options_[Key.LOG_LEVEL] = level;
|
|
292
|
+
return this;
|
|
293
|
+
}
|
|
335
294
|
|
|
336
|
-
/**
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
}
|
|
295
|
+
/**
|
|
296
|
+
* Sets the IP address of the driver's host adapter.
|
|
297
|
+
* @param {string} host The IP address to use.
|
|
298
|
+
* @return {!Options} A self reference.
|
|
299
|
+
*/
|
|
300
|
+
setHost(host) {
|
|
301
|
+
this.options_[Key.HOST] = host;
|
|
302
|
+
return this;
|
|
303
|
+
}
|
|
345
304
|
|
|
305
|
+
/**
|
|
306
|
+
* Sets the path of the temporary data directory to use.
|
|
307
|
+
* @param {string} path The log file path.
|
|
308
|
+
* @return {!Options} A self reference.
|
|
309
|
+
*/
|
|
310
|
+
setExtractPath(path) {
|
|
311
|
+
this.options_[Key.EXTRACT_PATH] = path;
|
|
312
|
+
return this;
|
|
313
|
+
}
|
|
346
314
|
|
|
347
|
-
/**
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
}
|
|
315
|
+
/**
|
|
316
|
+
* Sets whether the driver should start in silent mode.
|
|
317
|
+
* @param {boolean} silent Whether to run in silent mode.
|
|
318
|
+
* @return {!Options} A self reference.
|
|
319
|
+
*/
|
|
320
|
+
silent(silent) {
|
|
321
|
+
this.options_[Key.SILENT] = silent;
|
|
322
|
+
return this;
|
|
323
|
+
}
|
|
356
324
|
|
|
325
|
+
/**
|
|
326
|
+
* Sets the proxy settings for the new session.
|
|
327
|
+
* @param {capabilities.ProxyConfig} proxy The proxy configuration to use.
|
|
328
|
+
* @return {!Options} A self reference.
|
|
329
|
+
*/
|
|
330
|
+
setProxy(proxy) {
|
|
331
|
+
this.proxy_ = proxy;
|
|
332
|
+
return this;
|
|
333
|
+
}
|
|
357
334
|
|
|
358
|
-
/**
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
335
|
+
/**
|
|
336
|
+
* Converts this options instance to a {@link capabilities.Capabilities}
|
|
337
|
+
* object.
|
|
338
|
+
* @param {capabilities.Capabilities=} opt_capabilities The capabilities to
|
|
339
|
+
* merge these options into, if any.
|
|
340
|
+
* @return {!capabilities.Capabilities} The capabilities.
|
|
341
|
+
*/
|
|
342
|
+
toCapabilities(opt_capabilities) {
|
|
343
|
+
var caps = opt_capabilities || capabilities.Capabilities.ie();
|
|
344
|
+
if (this.proxy_) {
|
|
345
|
+
caps.set(capabilities.Capability.PROXY, this.proxy_);
|
|
346
|
+
}
|
|
347
|
+
Object.keys(this.options_).forEach(function(key) {
|
|
348
|
+
caps.set(key, this.options_[key]);
|
|
349
|
+
}, this);
|
|
350
|
+
return caps;
|
|
368
351
|
}
|
|
369
|
-
|
|
370
|
-
capabilities.set(key, this.options_[key]);
|
|
371
|
-
}, this);
|
|
372
|
-
return capabilities;
|
|
373
|
-
};
|
|
352
|
+
}
|
|
374
353
|
|
|
375
354
|
|
|
376
355
|
function createServiceFromCapabilities(capabilities) {
|
|
@@ -381,11 +360,15 @@ function createServiceFromCapabilities(capabilities) {
|
|
|
381
360
|
'WebDriver server?');
|
|
382
361
|
}
|
|
383
362
|
|
|
384
|
-
|
|
385
|
-
if (!fs.existsSync(exe)) {
|
|
386
|
-
throw Error(
|
|
363
|
+
let exe = io.findInPath(IEDRIVER_EXE, true);
|
|
364
|
+
if (!exe || !fs.existsSync(exe)) {
|
|
365
|
+
throw Error(
|
|
366
|
+
`${IEDRIVER_EXE} could not be found on the current PATH. Please ` +
|
|
367
|
+
`download the latest version of ${IEDRIVER_EXE} from ` +
|
|
368
|
+
'http://selenium-release.storage.googleapis.com/index.html and ' +
|
|
369
|
+
'ensure it can be found on your system PATH.');
|
|
387
370
|
}
|
|
388
|
-
|
|
371
|
+
|
|
389
372
|
var args = [];
|
|
390
373
|
if (capabilities.has(Key.HOST)) {
|
|
391
374
|
args.push('--host=' + capabilities.get(Key.HOST));
|
|
@@ -417,44 +400,40 @@ function createServiceFromCapabilities(capabilities) {
|
|
|
417
400
|
|
|
418
401
|
/**
|
|
419
402
|
* A WebDriver client for Microsoft's Internet Explorer.
|
|
420
|
-
*
|
|
421
|
-
* @param {(webdriver.Capabilities|Options)=} opt_config The configuration
|
|
422
|
-
* options.
|
|
423
|
-
* @param {webdriver.promise.ControlFlow=} opt_flow The control flow to use, or
|
|
424
|
-
* {@code null} to use the currently active flow.
|
|
425
|
-
* @constructor
|
|
426
|
-
* @extends {webdriver.WebDriver}
|
|
427
403
|
*/
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
404
|
+
class Driver extends webdriver.WebDriver {
|
|
405
|
+
/**
|
|
406
|
+
* @param {(capabilities.Capabilities|Options)=} opt_config The configuration
|
|
407
|
+
* options.
|
|
408
|
+
* @param {promise.ControlFlow=} opt_flow The control flow to use,
|
|
409
|
+
* or {@code null} to use the currently active flow.
|
|
410
|
+
*/
|
|
411
|
+
constructor(opt_config, opt_flow) {
|
|
412
|
+
var caps = opt_config instanceof Options ?
|
|
413
|
+
opt_config.toCapabilities() :
|
|
414
|
+
(opt_config || capabilities.Capabilities.ie());
|
|
415
|
+
|
|
416
|
+
var service = createServiceFromCapabilities(caps);
|
|
417
|
+
var executor = executors.createExecutor(service.start());
|
|
418
|
+
var driver = webdriver.WebDriver.createSession(executor, caps, opt_flow);
|
|
419
|
+
|
|
420
|
+
super(driver.getSession(), executor, driver.controlFlow());
|
|
421
|
+
|
|
422
|
+
let boundQuit = this.quit.bind(this);
|
|
423
|
+
|
|
424
|
+
/** @override */
|
|
425
|
+
this.quit = function() {
|
|
426
|
+
return boundQuit().thenFinally(service.kill.bind(service));
|
|
427
|
+
};
|
|
428
|
+
}
|
|
450
429
|
|
|
451
|
-
/**
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
}
|
|
430
|
+
/**
|
|
431
|
+
* This function is a no-op as file detectors are not supported by this
|
|
432
|
+
* implementation.
|
|
433
|
+
* @override
|
|
434
|
+
*/
|
|
435
|
+
setFileDetector() {}
|
|
436
|
+
}
|
|
458
437
|
|
|
459
438
|
|
|
460
439
|
// PUBLIC API
|