selenium-webdriver 2.47.0 → 2.52.0
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 +96 -0
- package/NOTICE +1 -1
- package/README.md +57 -6
- package/builder.js +375 -358
- package/chrome.js +549 -586
- package/edge.js +378 -0
- package/error.js +597 -5
- package/example/google_search_generator.js +2 -4
- package/example/logging.js +6 -2
- package/executors.js +11 -27
- package/firefox/binary.js +80 -114
- package/firefox/extension.js +10 -19
- package/firefox/index.js +175 -171
- package/firefox/profile.js +221 -239
- package/http/index.js +396 -77
- package/http/util.js +35 -35
- package/ie.js +288 -309
- package/index.js +34 -125
- package/io/exec.js +58 -39
- package/io/index.js +54 -48
- package/lib/actions.js +594 -0
- package/lib/by.js +276 -0
- package/lib/capabilities.js +404 -0
- package/lib/{webdriver/command.js → command.js} +89 -72
- package/lib/{webdriver/button.js → devmode.js} +13 -8
- package/lib/events.js +210 -0
- package/lib/firefox/amd64/libnoblur64.so +0 -0
- package/lib/firefox/i386/libnoblur.so +0 -0
- package/lib/firefox/webdriver.json +6 -1
- package/lib/firefox/webdriver.xpi +0 -0
- package/lib/{webdriver/key.js → input.js} +82 -2
- package/lib/logging.js +668 -0
- package/lib/promise.js +3093 -0
- package/lib/safari/client.js +697 -659
- package/lib/session.js +79 -0
- package/{test/promise_aplus_test.js → lib/symbols.js} +15 -25
- package/lib/test/build.js +4 -4
- package/lib/test/data/click_tests/disappearing_element.html +62 -0
- package/lib/test/data/click_tests/html5_submit_buttons.html +2 -1
- package/lib/test/data/click_tests/overlapping_elements.html +70 -0
- 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/readOnlyPage.html +3 -1
- package/lib/test/data/selectPage.html +18 -2
- package/lib/test/data/simpleTest.html +1 -0
- package/lib/test/fileserver.js +3 -4
- package/lib/test/index.js +13 -4
- package/lib/test/resources.js +1 -1
- package/lib/until.js +428 -0
- package/lib/webdriver.js +2351 -0
- package/net/portprober.js +15 -11
- package/opera.js +295 -314
- package/package.json +6 -5
- package/phantomjs.js +135 -140
- package/proxy.js +6 -4
- package/remote/index.js +234 -219
- package/safari.js +319 -310
- package/test/chrome/options_test.js +11 -9
- package/test/element_finding_test.js +51 -13
- package/test/error_test.js +163 -0
- package/test/execute_script_test.js +1 -1
- package/test/firefox/firefox_test.js +24 -0
- package/test/http/http_test.js +354 -43
- package/test/http/util_test.js +25 -23
- package/test/io_test.js +6 -1
- package/test/lib/by_test.js +127 -0
- package/test/lib/capabilities_test.js +84 -0
- package/test/lib/events_test.js +177 -0
- package/test/lib/logging_test.js +272 -0
- package/test/lib/promise_aplus_test.js +74 -0
- 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 +436 -0
- package/test/lib/webdriver_test.js +2207 -0
- package/test/page_loading_test.js +7 -9
- 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 +10 -0
- package/_base.js +0 -200
- package/docs/Changes.html +0 -317
- 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 -91
- 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 -216
- package/docs/class_webdriver_WebElementPromise.html +0 -266
- 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 -18
- package/docs/class_webdriver_promise_ControlFlow.html +0 -109
- package/docs/class_webdriver_promise_Deferred.html +0 -84
- package/docs/class_webdriver_promise_Promise.html +0 -74
- 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 -123
- 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 -216
- package/docs/module_selenium-webdriver_class_WebElementPromise.html +0 -266
- 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 -67
- package/docs/module_selenium-webdriver_firefox_binary.html +0 -4
- package/docs/module_selenium-webdriver_firefox_binary_class_Binary.html +0 -21
- package/docs/module_selenium-webdriver_firefox_class_Binary.html +0 -21
- 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 -162
- 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 -40
- 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 -165
- 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/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/testing/watchers.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 -1655
- 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 -139
- package/lib/goog/async/workqueue.js +0 -139
- package/lib/goog/base.js +0 -2547
- 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 -2995
- 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 -42
- package/lib/goog/dom/vendor.js +0 -96
- package/lib/goog/events/browserevent.js +0 -386
- 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 -233
- package/lib/goog/events/keycodes.js +0 -420
- 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 -105
- package/lib/goog/functions/functions.js +0 -332
- package/lib/goog/html/safehtml.js +0 -756
- 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 -431
- package/lib/goog/html/trustedresourceurl.js +0 -224
- package/lib/goog/html/uncheckedconversions.js +0 -231
- package/lib/goog/i18n/bidi.js +0 -908
- package/lib/goog/iter/iter.js +0 -1305
- package/lib/goog/json/json.js +0 -365
- 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 -327
- 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/math/box.js +0 -389
- 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 -1310
- package/lib/goog/promise/resolver.js +0 -48
- package/lib/goog/promise/thenable.js +0 -126
- package/lib/goog/reflect/reflect.js +0 -78
- package/lib/goog/string/const.js +0 -182
- package/lib/goog/string/string.js +0 -1565
- package/lib/goog/string/typedstring.js +0 -48
- package/lib/goog/structs/collection.js +0 -56
- package/lib/goog/structs/map.js +0 -456
- package/lib/goog/structs/set.js +0 -279
- package/lib/goog/structs/structs.js +0 -354
- package/lib/goog/style/style.js +0 -2054
- package/lib/goog/testing/asserts.js +0 -1265
- package/lib/goog/testing/events/events.js +0 -727
- package/lib/goog/testing/functionmock.js +0 -176
- 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 -617
- 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 -245
- 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 -1569
- package/lib/goog/testing/testrunner.js +0 -440
- package/lib/goog/testing/watchers.js +0 -46
- package/lib/goog/uri/uri.js +0 -1507
- package/lib/goog/uri/utils.js +0 -1116
- package/lib/goog/useragent/product.js +0 -175
- package/lib/goog/useragent/product_isversion.js +0 -143
- package/lib/goog/useragent/useragent.js +0 -538
- package/lib/webdriver/actionsequence.js +0 -356
- package/lib/webdriver/builder.js +0 -208
- package/lib/webdriver/capabilities.js +0 -411
- 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 -523
- 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/promise.js +0 -2609
- package/lib/webdriver/serializable.js +0 -41
- 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 -719
- package/lib/webdriver/test/promise_flow_test.js +0 -1957
- package/lib/webdriver/test/promise_generator_test.js +0 -251
- package/lib/webdriver/test/promise_test.js +0 -1981
- 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 -2492
- package/test/_base_test.js +0 -129
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
// Licensed to the Software Freedom Conservancy (SFC) under one
|
|
2
|
-
// or more contributor license agreements. See the NOTICE file
|
|
3
|
-
// distributed with this work for additional information
|
|
4
|
-
// regarding copyright ownership. The SFC licenses this file
|
|
5
|
-
// to you under the Apache License, Version 2.0 (the
|
|
6
|
-
// "License"); you may not use this file except in compliance
|
|
7
|
-
// with the License. You may obtain a copy of the License at
|
|
8
|
-
//
|
|
9
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
//
|
|
11
|
-
// Unless required by applicable law or agreed to in writing,
|
|
12
|
-
// software distributed under the License is distributed on an
|
|
13
|
-
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
// KIND, either express or implied. See the License for the
|
|
15
|
-
// specific language governing permissions and limitations
|
|
16
|
-
// under the License.
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @fileoverview A utility class for working with test windows.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
goog.provide('webdriver.testing.Window');
|
|
23
|
-
|
|
24
|
-
goog.require('goog.string');
|
|
25
|
-
goog.require('webdriver.promise');
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Class for managing a window.
|
|
31
|
-
*
|
|
32
|
-
* This class is implemented as a promise so consumers may register
|
|
33
|
-
* callbacks on it to handle situations where the window fails to open.
|
|
34
|
-
*
|
|
35
|
-
* For example:
|
|
36
|
-
*
|
|
37
|
-
* var testWindow = webdriver.testing.Window.create(driver);
|
|
38
|
-
* // Throw a custom error when the window fails to open.
|
|
39
|
-
* testWindow.thenCatch(function(e) {
|
|
40
|
-
* throw Error('Failed to open test window: ' + e);
|
|
41
|
-
* });
|
|
42
|
-
*
|
|
43
|
-
* @param {!webdriver.WebDriver} driver The driver to use.
|
|
44
|
-
* @param {(string|!webdriver.promise.Promise)} handle Either the managed
|
|
45
|
-
* window's handle, or a promise that will resolve to it.
|
|
46
|
-
* @param {(Window|webdriver.promise.Promise)=} opt_window The raw window
|
|
47
|
-
* object, if available.
|
|
48
|
-
* @constructor
|
|
49
|
-
* @extends {webdriver.promise.Promise}
|
|
50
|
-
*/
|
|
51
|
-
webdriver.testing.Window = function(driver, handle, opt_window) {
|
|
52
|
-
webdriver.promise.Promise.call(this, function(fulfill, reject) {
|
|
53
|
-
handle.then(fulfill, reject);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
/** @private {!webdriver.WebDriver} */
|
|
57
|
-
this.driver_ = driver;
|
|
58
|
-
|
|
59
|
-
/** @private {!webdriver.promise.Promise} */
|
|
60
|
-
this.handle_ = webdriver.promise.when(handle);
|
|
61
|
-
|
|
62
|
-
/** @private {!webdriver.promise.Promise} */
|
|
63
|
-
this.window_ = webdriver.promise.when(opt_window);
|
|
64
|
-
};
|
|
65
|
-
goog.inherits(webdriver.testing.Window, webdriver.promise.Promise);
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Default amount of time, in milliseconds, to wait for a new window to open.
|
|
70
|
-
* @type {number}
|
|
71
|
-
* @const
|
|
72
|
-
*/
|
|
73
|
-
webdriver.testing.Window.DEFAULT_OPEN_TIMEOUT = 2000;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Window running this script. Lazily initialized the first time it is requested
|
|
78
|
-
* from {@link webdriver.testing.Window.findWindow}.
|
|
79
|
-
* @private {webdriver.testing.Window}
|
|
80
|
-
*/
|
|
81
|
-
webdriver.testing.Window.currentWindow_ = null;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Opens and focuses on a new window.
|
|
86
|
-
*
|
|
87
|
-
* @param {!webdriver.WebDriver} driver The driver to use.
|
|
88
|
-
* @param {?{width: number, height: number}=} opt_size The desired size for
|
|
89
|
-
* the new window.
|
|
90
|
-
* @param {number=} opt_timeout How long, in milliseconds, to wait for the new
|
|
91
|
-
* window to open. Defaults to
|
|
92
|
-
* {@link webdriver.testing.Window.DEFAULT_OPEN_TIMEOUT}.
|
|
93
|
-
* @return {!webdriver.testing.Window} The new window.
|
|
94
|
-
*/
|
|
95
|
-
webdriver.testing.Window.create = function(driver, opt_size, opt_timeout) {
|
|
96
|
-
var windowPromise = webdriver.promise.defer();
|
|
97
|
-
var handle = driver.call(function() {
|
|
98
|
-
var features = [
|
|
99
|
-
'location=yes',
|
|
100
|
-
'titlebar=yes'
|
|
101
|
-
];
|
|
102
|
-
|
|
103
|
-
if (opt_size) {
|
|
104
|
-
features.push(
|
|
105
|
-
'width=' + opt_size.width,
|
|
106
|
-
'height=' + opt_size.height);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
var name = goog.string.getRandomString();
|
|
110
|
-
windowPromise.fulfill(window.open('', name, features.join(',')));
|
|
111
|
-
|
|
112
|
-
driver.wait(function() {
|
|
113
|
-
return driver.switchTo().window(name).then(
|
|
114
|
-
function() { return true; },
|
|
115
|
-
function() { return false; });
|
|
116
|
-
}, opt_timeout || webdriver.testing.Window.DEFAULT_OPEN_TIMEOUT);
|
|
117
|
-
return driver.getWindowHandle();
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
return new webdriver.testing.Window(driver, handle, windowPromise);
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Changes focus to the topmost window for the provided DOM window.
|
|
126
|
-
*
|
|
127
|
-
* @param {!webdriver.WebDriver} driver The driver to use.
|
|
128
|
-
* @param {Window=} opt_window The window to search for. Defaults to the window
|
|
129
|
-
* running this script.
|
|
130
|
-
* @return {!webdriver.testing.Window} The located window.
|
|
131
|
-
*/
|
|
132
|
-
webdriver.testing.Window.focusOnWindow = function(driver, opt_window) {
|
|
133
|
-
var name = goog.string.getRandomString();
|
|
134
|
-
var win = opt_window ? opt_window.top : window;
|
|
135
|
-
|
|
136
|
-
var ret;
|
|
137
|
-
if (win === window && webdriver.testing.Window.currentWindow_) {
|
|
138
|
-
ret = webdriver.testing.Window.currentWindow_;
|
|
139
|
-
webdriver.testing.Window.currentWindow_.focus();
|
|
140
|
-
} else {
|
|
141
|
-
win.name = name;
|
|
142
|
-
ret = new webdriver.testing.Window(driver,
|
|
143
|
-
driver.switchTo().window(name).
|
|
144
|
-
then(goog.bind(driver.getWindowHandle, driver)),
|
|
145
|
-
win);
|
|
146
|
-
if (win === window) {
|
|
147
|
-
webdriver.testing.Window.currentWindow_ = ret;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return ret;
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
/** @override */
|
|
155
|
-
webdriver.testing.Window.prototype.cancel = function() {
|
|
156
|
-
return this.handle_.cancel();
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Focuses the wrapped driver on the window managed by this class.
|
|
162
|
-
* @return {!webdriver.promise.Promise} A promise that will be resolved
|
|
163
|
-
* when this command has completed.
|
|
164
|
-
*/
|
|
165
|
-
webdriver.testing.Window.prototype.focus = function() {
|
|
166
|
-
return this.driver_.switchTo().window(this.handle_);
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Focuses on and closes the managed window. The driver <em>must</em> be
|
|
172
|
-
* focused on another window before issuing any further commands.
|
|
173
|
-
* @return {!webdriver.promise.Promise} A promise that will be resolved
|
|
174
|
-
* when this command has completed.
|
|
175
|
-
*/
|
|
176
|
-
webdriver.testing.Window.prototype.close = function() {
|
|
177
|
-
var self = this;
|
|
178
|
-
return this.window_.then(function(win) {
|
|
179
|
-
if (win) {
|
|
180
|
-
win.close();
|
|
181
|
-
} else {
|
|
182
|
-
return self.focus().then(goog.bind(self.driver_.close, self.driver_));
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
};
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Retrieves the current size of this window.
|
|
190
|
-
* @return {!webdriver.promise.Promise} A promise that resolves to the size of
|
|
191
|
-
* this window as a {width:number, height:number} object.
|
|
192
|
-
*/
|
|
193
|
-
webdriver.testing.Window.prototype.getSize = function() {
|
|
194
|
-
var driver = this.driver_;
|
|
195
|
-
return this.focus().then(function() {
|
|
196
|
-
return driver.manage().window().getSize();
|
|
197
|
-
});
|
|
198
|
-
};
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Sets the size of this window.
|
|
203
|
-
* @param {number} width The desired width, in pixels.
|
|
204
|
-
* @param {number} height The desired height, in pixels.
|
|
205
|
-
* @return {!webdriver.promise.Promise} A promise that resolves when the
|
|
206
|
-
* command has completed.
|
|
207
|
-
*/
|
|
208
|
-
webdriver.testing.Window.prototype.setSize = function(width, height) {
|
|
209
|
-
var driver = this.driver_;
|
|
210
|
-
return this.focus().then(function() {
|
|
211
|
-
return driver.manage().window().setSize(width, height);
|
|
212
|
-
});
|
|
213
|
-
};
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Retrieves the current position of this window, in pixels relative to the
|
|
218
|
-
* upper left corner of the screen.
|
|
219
|
-
* @return {!webdriver.promise.Promise} A promise that resolves to the
|
|
220
|
-
* position of this window as a {x:number, y:number} object.
|
|
221
|
-
*/
|
|
222
|
-
webdriver.testing.Window.prototype.getPosition = function() {
|
|
223
|
-
var driver = this.driver_;
|
|
224
|
-
return this.focus().then(function() {
|
|
225
|
-
return driver.manage().window().getPosition();
|
|
226
|
-
});
|
|
227
|
-
};
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Repositions this window.
|
|
232
|
-
* @param {number} x The desired horizontal position, in pixels from the left
|
|
233
|
-
* side of the screen.
|
|
234
|
-
* @param {number} y The desired vertical position, in pixels from the top
|
|
235
|
-
* of the screen.
|
|
236
|
-
* @return {!webdriver.promise.Promise} A promise that resolves when the
|
|
237
|
-
* command has completed.
|
|
238
|
-
*/
|
|
239
|
-
webdriver.testing.Window.prototype.setPosition = function(x, y) {
|
|
240
|
-
var driver = this.driver_;
|
|
241
|
-
return this.focus().then(function() {
|
|
242
|
-
return driver.manage().window().setPosition(x, y);
|
|
243
|
-
});
|
|
244
|
-
};
|
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
// Licensed to the Software Freedom Conservancy (SFC) under one
|
|
2
|
-
// or more contributor license agreements. See the NOTICE file
|
|
3
|
-
// distributed with this work for additional information
|
|
4
|
-
// regarding copyright ownership. The SFC licenses this file
|
|
5
|
-
// to you under the Apache License, Version 2.0 (the
|
|
6
|
-
// "License"); you may not use this file except in compliance
|
|
7
|
-
// with the License. You may obtain a copy of the License at
|
|
8
|
-
//
|
|
9
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
//
|
|
11
|
-
// Unless required by applicable law or agreed to in writing,
|
|
12
|
-
// software distributed under the License is distributed on an
|
|
13
|
-
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
// KIND, either express or implied. See the License for the
|
|
15
|
-
// specific language governing permissions and limitations
|
|
16
|
-
// under the License.
|
|
17
|
-
|
|
18
|
-
goog.provide('webdriver.TouchSequence');
|
|
19
|
-
|
|
20
|
-
goog.require('goog.array');
|
|
21
|
-
goog.require('webdriver.Command');
|
|
22
|
-
goog.require('webdriver.CommandName');
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Class for defining sequences of user touch interactions. Each sequence
|
|
28
|
-
* will not be executed until {@link #perform} is called.
|
|
29
|
-
*
|
|
30
|
-
* Example:
|
|
31
|
-
*
|
|
32
|
-
* new webdriver.TouchSequence(driver).
|
|
33
|
-
* tapAndHold({x: 0, y: 0}).
|
|
34
|
-
* move({x: 3, y: 4}).
|
|
35
|
-
* release({x: 10, y: 10}).
|
|
36
|
-
* perform();
|
|
37
|
-
*
|
|
38
|
-
* @param {!webdriver.WebDriver} driver The driver instance to use.
|
|
39
|
-
* @constructor
|
|
40
|
-
*/
|
|
41
|
-
webdriver.TouchSequence = function(driver) {
|
|
42
|
-
|
|
43
|
-
/** @private {!webdriver.WebDriver} */
|
|
44
|
-
this.driver_ = driver;
|
|
45
|
-
|
|
46
|
-
/** @private {!Array<{description: string, command: !webdriver.Command}>} */
|
|
47
|
-
this.touchActions_ = [];
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Schedules an action to be executed each time {@link #perform} is called on
|
|
53
|
-
* this instance.
|
|
54
|
-
* @param {string} description A description of the command.
|
|
55
|
-
* @param {!webdriver.Command} command The command.
|
|
56
|
-
* @private
|
|
57
|
-
*/
|
|
58
|
-
webdriver.TouchSequence.prototype.schedule_ = function(description, command) {
|
|
59
|
-
this.touchActions_.push({
|
|
60
|
-
description: description,
|
|
61
|
-
command: command
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Executes this action sequence.
|
|
68
|
-
* @return {!webdriver.promise.Promise} A promise that will be resolved once
|
|
69
|
-
* this sequence has completed.
|
|
70
|
-
*/
|
|
71
|
-
webdriver.TouchSequence.prototype.perform = function() {
|
|
72
|
-
// Make a protected copy of the scheduled actions. This will protect against
|
|
73
|
-
// users defining additional commands before this sequence is actually
|
|
74
|
-
// executed.
|
|
75
|
-
var actions = goog.array.clone(this.touchActions_);
|
|
76
|
-
var driver = this.driver_;
|
|
77
|
-
return driver.controlFlow().execute(function() {
|
|
78
|
-
goog.array.forEach(actions, function(action) {
|
|
79
|
-
driver.schedule(action.command, action.description);
|
|
80
|
-
});
|
|
81
|
-
}, 'TouchSequence.perform');
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Taps an element.
|
|
87
|
-
*
|
|
88
|
-
* @param {!webdriver.WebElement} elem The element to tap.
|
|
89
|
-
* @return {!webdriver.TouchSequence} A self reference.
|
|
90
|
-
*/
|
|
91
|
-
webdriver.TouchSequence.prototype.tap = function(elem) {
|
|
92
|
-
var command = new webdriver.Command(webdriver.CommandName.TOUCH_SINGLE_TAP).
|
|
93
|
-
setParameter('element', elem.getRawId());
|
|
94
|
-
|
|
95
|
-
this.schedule_('tap', command);
|
|
96
|
-
return this;
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Double taps an element.
|
|
102
|
-
*
|
|
103
|
-
* @param {!webdriver.WebElement} elem The element to double tap.
|
|
104
|
-
* @return {!webdriver.TouchSequence} A self reference.
|
|
105
|
-
*/
|
|
106
|
-
webdriver.TouchSequence.prototype.doubleTap = function(elem) {
|
|
107
|
-
var command = new webdriver.Command(webdriver.CommandName.TOUCH_DOUBLE_TAP).
|
|
108
|
-
setParameter('element', elem.getRawId());
|
|
109
|
-
|
|
110
|
-
this.schedule_('doubleTap', command);
|
|
111
|
-
return this;
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Long press on an element.
|
|
117
|
-
*
|
|
118
|
-
* @param {!webdriver.WebElement} elem The element to long press.
|
|
119
|
-
* @return {!webdriver.TouchSequence} A self reference.
|
|
120
|
-
*/
|
|
121
|
-
webdriver.TouchSequence.prototype.longPress = function(elem) {
|
|
122
|
-
var command = new webdriver.Command(webdriver.CommandName.TOUCH_LONG_PRESS).
|
|
123
|
-
setParameter('element', elem.getRawId());
|
|
124
|
-
|
|
125
|
-
this.schedule_('longPress', command);
|
|
126
|
-
return this;
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Touch down at the given location.
|
|
132
|
-
*
|
|
133
|
-
* @param {{x: number, y: number}} location The location to touch down at.
|
|
134
|
-
* @return {!webdriver.TouchSequence} A self reference.
|
|
135
|
-
*/
|
|
136
|
-
webdriver.TouchSequence.prototype.tapAndHold = function(location) {
|
|
137
|
-
var command = new webdriver.Command(webdriver.CommandName.TOUCH_DOWN).
|
|
138
|
-
setParameter('x', location.x).
|
|
139
|
-
setParameter('y', location.y);
|
|
140
|
-
|
|
141
|
-
this.schedule_('tapAndHold', command);
|
|
142
|
-
return this;
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Move a held {@linkplain #tapAndHold touch} to the specified location.
|
|
148
|
-
*
|
|
149
|
-
* @param {{x: number, y: number}} location The location to move to.
|
|
150
|
-
* @return {!webdriver.TouchSequence} A self reference.
|
|
151
|
-
*/
|
|
152
|
-
webdriver.TouchSequence.prototype.move = function(location) {
|
|
153
|
-
var command = new webdriver.Command(webdriver.CommandName.TOUCH_MOVE).
|
|
154
|
-
setParameter('x', location.x).
|
|
155
|
-
setParameter('y', location.y);
|
|
156
|
-
|
|
157
|
-
this.schedule_('move', command);
|
|
158
|
-
return this;
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* Release a held {@linkplain #tapAndHold touch} at the specified location.
|
|
164
|
-
*
|
|
165
|
-
* @param {{x: number, y: number}} location The location to release at.
|
|
166
|
-
* @return {!webdriver.TouchSequence} A self reference.
|
|
167
|
-
*/
|
|
168
|
-
webdriver.TouchSequence.prototype.release = function(location) {
|
|
169
|
-
var command = new webdriver.Command(webdriver.CommandName.TOUCH_UP).
|
|
170
|
-
setParameter('x', location.x).
|
|
171
|
-
setParameter('y', location.y);
|
|
172
|
-
|
|
173
|
-
this.schedule_('release', command);
|
|
174
|
-
return this;
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Scrolls the touch screen by the given offset.
|
|
180
|
-
*
|
|
181
|
-
* @param {{x: number, y: number}} offset The offset to scroll to.
|
|
182
|
-
* @return {!webdriver.TouchSequence} A self reference.
|
|
183
|
-
*/
|
|
184
|
-
webdriver.TouchSequence.prototype.scroll = function(offset) {
|
|
185
|
-
var command = new webdriver.Command(webdriver.CommandName.TOUCH_SCROLL).
|
|
186
|
-
setParameter('xoffset', offset.x).
|
|
187
|
-
setParameter('yoffset', offset.y);
|
|
188
|
-
|
|
189
|
-
this.schedule_('scroll', command);
|
|
190
|
-
return this;
|
|
191
|
-
};
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Scrolls the touch screen, starting on `elem` and moving by the specified
|
|
196
|
-
* offset.
|
|
197
|
-
*
|
|
198
|
-
* @param {!webdriver.WebElement} elem The element where scroll starts.
|
|
199
|
-
* @param {{x: number, y: number}} offset The offset to scroll to.
|
|
200
|
-
* @return {!webdriver.TouchSequence} A self reference.
|
|
201
|
-
*/
|
|
202
|
-
webdriver.TouchSequence.prototype.scrollFromElement = function(elem, offset) {
|
|
203
|
-
var command = new webdriver.Command(webdriver.CommandName.TOUCH_SCROLL).
|
|
204
|
-
setParameter('element', elem.getRawId()).
|
|
205
|
-
setParameter('xoffset', offset.x).
|
|
206
|
-
setParameter('yoffset', offset.y);
|
|
207
|
-
|
|
208
|
-
this.schedule_('scrollFromElement', command);
|
|
209
|
-
return this;
|
|
210
|
-
};
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* Flick, starting anywhere on the screen, at speed xspeed and yspeed.
|
|
215
|
-
*
|
|
216
|
-
* @param {{xspeed: number, yspeed: number}} speed The speed to flick in each
|
|
217
|
-
direction, in pixels per second.
|
|
218
|
-
* @return {!webdriver.TouchSequence} A self reference.
|
|
219
|
-
*/
|
|
220
|
-
webdriver.TouchSequence.prototype.flick = function(speed) {
|
|
221
|
-
var command = new webdriver.Command(webdriver.CommandName.TOUCH_FLICK).
|
|
222
|
-
setParameter('xspeed', speed.xspeed).
|
|
223
|
-
setParameter('yspeed', speed.yspeed);
|
|
224
|
-
|
|
225
|
-
this.schedule_('flick', command);
|
|
226
|
-
return this;
|
|
227
|
-
};
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Flick starting at elem and moving by x and y at specified speed.
|
|
232
|
-
*
|
|
233
|
-
* @param {!webdriver.WebElement} elem The element where flick starts.
|
|
234
|
-
* @param {{x: number, y: number}} offset The offset to flick to.
|
|
235
|
-
* @param {number} speed The speed to flick at in pixels per second.
|
|
236
|
-
* @return {!webdriver.TouchSequence} A self reference.
|
|
237
|
-
*/
|
|
238
|
-
webdriver.TouchSequence.prototype.flickElement = function(elem, offset, speed) {
|
|
239
|
-
var command = new webdriver.Command(webdriver.CommandName.TOUCH_FLICK).
|
|
240
|
-
setParameter('element', elem.getRawId()).
|
|
241
|
-
setParameter('xoffset', offset.x).
|
|
242
|
-
setParameter('yoffset', offset.y).
|
|
243
|
-
setParameter('speed', speed);
|
|
244
|
-
|
|
245
|
-
this.schedule_('flickElement', command);
|
|
246
|
-
return this;
|
|
247
|
-
};
|
|
248
|
-
|