selenium-webdriver 2.48.2 → 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.
Files changed (524) hide show
  1. package/CHANGES.md +57 -0
  2. package/NOTICE +1 -1
  3. package/README.md +56 -6
  4. package/builder.js +375 -358
  5. package/chrome.js +549 -586
  6. package/edge.js +378 -0
  7. package/error.js +597 -5
  8. package/example/google_search_generator.js +2 -4
  9. package/example/logging.js +6 -2
  10. package/executors.js +11 -27
  11. package/firefox/binary.js +79 -87
  12. package/firefox/extension.js +10 -18
  13. package/firefox/index.js +173 -173
  14. package/firefox/profile.js +220 -240
  15. package/http/index.js +396 -79
  16. package/http/util.js +35 -35
  17. package/ie.js +288 -309
  18. package/index.js +34 -125
  19. package/io/exec.js +58 -39
  20. package/io/index.js +54 -48
  21. package/lib/actions.js +594 -0
  22. package/lib/by.js +276 -0
  23. package/lib/capabilities.js +404 -0
  24. package/lib/{webdriver/command.js → command.js} +88 -72
  25. package/lib/{webdriver/button.js → devmode.js} +13 -8
  26. package/lib/events.js +210 -0
  27. package/lib/firefox/amd64/libnoblur64.so +0 -0
  28. package/lib/firefox/i386/libnoblur.so +0 -0
  29. package/lib/firefox/webdriver.json +5 -1
  30. package/lib/firefox/webdriver.xpi +0 -0
  31. package/lib/{webdriver/key.js → input.js} +82 -2
  32. package/lib/logging.js +668 -0
  33. package/lib/{webdriver/promise.js → promise.js} +688 -644
  34. package/lib/session.js +79 -0
  35. package/lib/{webdriver/serializable.js → symbols.js} +11 -16
  36. package/lib/test/build.js +4 -4
  37. package/lib/test/data/click_tests/html5_submit_buttons.html +2 -1
  38. package/lib/test/data/click_tests/overlapping_elements.html +15 -4
  39. package/lib/test/data/click_tests/partially_overlapping_elements.html +124 -0
  40. package/lib/test/data/click_tests/wrapped_overlapping_elements.html +13 -0
  41. package/lib/test/data/readOnlyPage.html +1 -1
  42. package/lib/test/data/selectPage.html +18 -2
  43. package/lib/test/fileserver.js +3 -4
  44. package/lib/test/index.js +7 -3
  45. package/lib/test/resources.js +1 -1
  46. package/lib/until.js +428 -0
  47. package/lib/webdriver.js +2351 -0
  48. package/net/portprober.js +15 -11
  49. package/opera.js +295 -314
  50. package/package.json +6 -5
  51. package/phantomjs.js +135 -140
  52. package/proxy.js +6 -4
  53. package/remote/index.js +229 -221
  54. package/safari.js +319 -310
  55. package/test/chrome/options_test.js +11 -9
  56. package/test/element_finding_test.js +51 -13
  57. package/test/error_test.js +163 -0
  58. package/test/execute_script_test.js +1 -1
  59. package/test/http/http_test.js +317 -55
  60. package/test/http/util_test.js +25 -23
  61. package/test/io_test.js +6 -1
  62. package/test/lib/by_test.js +127 -0
  63. package/test/lib/capabilities_test.js +84 -0
  64. package/test/lib/events_test.js +177 -0
  65. package/test/lib/logging_test.js +272 -0
  66. package/test/{promise_aplus_test.js → lib/promise_aplus_test.js} +4 -13
  67. package/test/lib/promise_error_test.js +808 -0
  68. package/test/lib/promise_flow_test.js +2282 -0
  69. package/test/lib/promise_generator_test.js +308 -0
  70. package/test/lib/promise_test.js +996 -0
  71. package/test/lib/testutil.js +90 -0
  72. package/test/lib/until_test.js +436 -0
  73. package/test/lib/webdriver_test.js +2207 -0
  74. package/test/page_loading_test.js +7 -9
  75. package/test/stale_element_test.js +2 -2
  76. package/test/testing/assert_test.js +374 -0
  77. package/test/testing/index_test.js +9 -11
  78. package/testing/assert.js +334 -17
  79. package/testing/index.js +10 -0
  80. package/_base.js +0 -200
  81. package/docs/Changes.html +0 -356
  82. package/docs/class_bot_Error.html +0 -15
  83. package/docs/class_webdriver_ActionSequence.html +0 -115
  84. package/docs/class_webdriver_Alert.html +0 -24
  85. package/docs/class_webdriver_AlertPromise.html +0 -92
  86. package/docs/class_webdriver_Capabilities.html +0 -60
  87. package/docs/class_webdriver_Command.html +0 -15
  88. package/docs/class_webdriver_EventEmitter.html +0 -35
  89. package/docs/class_webdriver_FileDetector.html +0 -21
  90. package/docs/class_webdriver_Locator.html +0 -12
  91. package/docs/class_webdriver_Serializable.html +0 -9
  92. package/docs/class_webdriver_Session.html +0 -13
  93. package/docs/class_webdriver_TouchSequence.html +0 -49
  94. package/docs/class_webdriver_UnhandledAlertError.html +0 -18
  95. package/docs/class_webdriver_WebDriver.html +0 -313
  96. package/docs/class_webdriver_WebDriver_Logs.html +0 -15
  97. package/docs/class_webdriver_WebDriver_Navigation.html +0 -16
  98. package/docs/class_webdriver_WebDriver_Options.html +0 -41
  99. package/docs/class_webdriver_WebDriver_TargetLocator.html +0 -38
  100. package/docs/class_webdriver_WebDriver_Timeouts.html +0 -29
  101. package/docs/class_webdriver_WebDriver_Window.html +0 -27
  102. package/docs/class_webdriver_WebElement.html +0 -223
  103. package/docs/class_webdriver_WebElementPromise.html +0 -274
  104. package/docs/class_webdriver_http_Executor.html +0 -22
  105. package/docs/class_webdriver_http_Request.html +0 -12
  106. package/docs/class_webdriver_http_Response.html +0 -13
  107. package/docs/class_webdriver_logging_Entry.html +0 -15
  108. package/docs/class_webdriver_logging_Level.html +0 -55
  109. package/docs/class_webdriver_logging_LogRecord.html +0 -45
  110. package/docs/class_webdriver_logging_Logger.html +0 -119
  111. package/docs/class_webdriver_logging_Preferences.html +0 -8
  112. package/docs/class_webdriver_promise_CancellationError.html +0 -17
  113. package/docs/class_webdriver_promise_ControlFlow.html +0 -153
  114. package/docs/class_webdriver_promise_Deferred.html +0 -84
  115. package/docs/class_webdriver_promise_MultipleUnhandledRejectionError.html +0 -14
  116. package/docs/class_webdriver_promise_Promise.html +0 -75
  117. package/docs/class_webdriver_stacktrace_Frame.html +0 -20
  118. package/docs/class_webdriver_stacktrace_Snapshot.html +0 -6
  119. package/docs/class_webdriver_testing_Assertion.html +0 -99
  120. package/docs/class_webdriver_testing_Assertion_DelegatingMatcher_.html +0 -13
  121. package/docs/class_webdriver_testing_ContainsMatcher.html +0 -11
  122. package/docs/class_webdriver_testing_NegatedAssertion.html +0 -97
  123. package/docs/class_webdriver_until_Condition.html +0 -7
  124. package/docs/dossier.css +0 -1
  125. package/docs/dossier.js +0 -86
  126. package/docs/enum_bot_ErrorCode.html +0 -3
  127. package/docs/enum_bot_Error_State.html +0 -2
  128. package/docs/enum_webdriver_Browser.html +0 -2
  129. package/docs/enum_webdriver_Button.html +0 -2
  130. package/docs/enum_webdriver_Capability.html +0 -33
  131. package/docs/enum_webdriver_CommandName.html +0 -3
  132. package/docs/enum_webdriver_Key.html +0 -12
  133. package/docs/enum_webdriver_logging_Type.html +0 -6
  134. package/docs/enum_webdriver_promise_ControlFlow_EventType.html +0 -9
  135. package/docs/index.html +0 -125
  136. package/docs/interface_webdriver_CommandExecutor.html +0 -9
  137. package/docs/interface_webdriver_http_Client.html +0 -10
  138. package/docs/interface_webdriver_promise_Thenable.html +0 -77
  139. package/docs/module_selenium-webdriver.html +0 -23
  140. package/docs/module_selenium-webdriver__base.html +0 -23
  141. package/docs/module_selenium-webdriver__base_class_Context.html +0 -5
  142. package/docs/module_selenium-webdriver_builder.html +0 -2
  143. package/docs/module_selenium-webdriver_builder_class_Builder.html +0 -138
  144. package/docs/module_selenium-webdriver_chrome.html +0 -90
  145. package/docs/module_selenium-webdriver_chrome_class_Driver.html +0 -280
  146. package/docs/module_selenium-webdriver_chrome_class_Options.html +0 -127
  147. package/docs/module_selenium-webdriver_chrome_class_ServiceBuilder.html +0 -46
  148. package/docs/module_selenium-webdriver_class_ActionSequence.html +0 -115
  149. package/docs/module_selenium-webdriver_class_Builder.html +0 -138
  150. package/docs/module_selenium-webdriver_class_Capabilities.html +0 -60
  151. package/docs/module_selenium-webdriver_class_Command.html +0 -15
  152. package/docs/module_selenium-webdriver_class_EventEmitter.html +0 -35
  153. package/docs/module_selenium-webdriver_class_FileDetector.html +0 -21
  154. package/docs/module_selenium-webdriver_class_Serializable.html +0 -9
  155. package/docs/module_selenium-webdriver_class_Session.html +0 -13
  156. package/docs/module_selenium-webdriver_class_WebDriver.html +0 -313
  157. package/docs/module_selenium-webdriver_class_WebElement.html +0 -223
  158. package/docs/module_selenium-webdriver_class_WebElementPromise.html +0 -274
  159. package/docs/module_selenium-webdriver_enum_Browser.html +0 -2
  160. package/docs/module_selenium-webdriver_enum_Button.html +0 -2
  161. package/docs/module_selenium-webdriver_enum_Capability.html +0 -33
  162. package/docs/module_selenium-webdriver_enum_CommandName.html +0 -3
  163. package/docs/module_selenium-webdriver_enum_Key.html +0 -12
  164. package/docs/module_selenium-webdriver_error.html +0 -4
  165. package/docs/module_selenium-webdriver_error_class_Error.html +0 -15
  166. package/docs/module_selenium-webdriver_error_enum_ErrorCode.html +0 -3
  167. package/docs/module_selenium-webdriver_executors.html +0 -10
  168. package/docs/module_selenium-webdriver_executors_class_DeferredExecutor.html +0 -12
  169. package/docs/module_selenium-webdriver_firefox.html +0 -68
  170. package/docs/module_selenium-webdriver_firefox_binary.html +0 -5
  171. package/docs/module_selenium-webdriver_firefox_binary_class_Binary.html +0 -20
  172. package/docs/module_selenium-webdriver_firefox_class_Binary.html +0 -20
  173. package/docs/module_selenium-webdriver_firefox_class_Driver.html +0 -276
  174. package/docs/module_selenium-webdriver_firefox_class_Options.html +0 -19
  175. package/docs/module_selenium-webdriver_firefox_class_Profile.html +0 -50
  176. package/docs/module_selenium-webdriver_firefox_extension.html +0 -8
  177. package/docs/module_selenium-webdriver_firefox_profile.html +0 -13
  178. package/docs/module_selenium-webdriver_firefox_profile_class_Profile.html +0 -50
  179. package/docs/module_selenium-webdriver_http.html +0 -9
  180. package/docs/module_selenium-webdriver_http_class_Executor.html +0 -22
  181. package/docs/module_selenium-webdriver_http_class_HttpClient.html +0 -16
  182. package/docs/module_selenium-webdriver_http_class_Request.html +0 -12
  183. package/docs/module_selenium-webdriver_http_class_Response.html +0 -13
  184. package/docs/module_selenium-webdriver_http_util.html +0 -17
  185. package/docs/module_selenium-webdriver_ie.html +0 -11
  186. package/docs/module_selenium-webdriver_ie_class_Driver.html +0 -274
  187. package/docs/module_selenium-webdriver_ie_class_Options.html +0 -89
  188. package/docs/module_selenium-webdriver_ie_enum_Level.html +0 -1
  189. package/docs/module_selenium-webdriver_io.html +0 -37
  190. package/docs/module_selenium-webdriver_io_exec.html +0 -6
  191. package/docs/module_selenium-webdriver_namespace_By.html +0 -56
  192. package/docs/module_selenium-webdriver_namespace_error.html +0 -4
  193. package/docs/module_selenium-webdriver_namespace_logging.html +0 -18
  194. package/docs/module_selenium-webdriver_namespace_promise.html +0 -163
  195. package/docs/module_selenium-webdriver_namespace_stacktrace.html +0 -17
  196. package/docs/module_selenium-webdriver_namespace_until.html +0 -82
  197. package/docs/module_selenium-webdriver_net.html +0 -7
  198. package/docs/module_selenium-webdriver_net_portprober.html +0 -12
  199. package/docs/module_selenium-webdriver_opera.html +0 -62
  200. package/docs/module_selenium-webdriver_opera_class_Driver.html +0 -276
  201. package/docs/module_selenium-webdriver_opera_class_Options.html +0 -44
  202. package/docs/module_selenium-webdriver_opera_class_ServiceBuilder.html +0 -35
  203. package/docs/module_selenium-webdriver_phantomjs.html +0 -2
  204. package/docs/module_selenium-webdriver_phantomjs_class_Driver.html +0 -299
  205. package/docs/module_selenium-webdriver_proxy.html +0 -28
  206. package/docs/module_selenium-webdriver_remote.html +0 -8
  207. package/docs/module_selenium-webdriver_remote_class_DriverService.html +0 -32
  208. package/docs/module_selenium-webdriver_remote_class_FileDetector.html +0 -22
  209. package/docs/module_selenium-webdriver_remote_class_SeleniumServer.html +0 -41
  210. package/docs/module_selenium-webdriver_safari.html +0 -9
  211. package/docs/module_selenium-webdriver_safari_class_Driver.html +0 -279
  212. package/docs/module_selenium-webdriver_safari_class_Options.html +0 -23
  213. package/docs/module_selenium-webdriver_testing.html +0 -74
  214. package/docs/module_selenium-webdriver_testing_assert.html +0 -9
  215. package/docs/namespace_bot.html +0 -4
  216. package/docs/namespace_bot_json.html +0 -20
  217. package/docs/namespace_bot_response.html +0 -18
  218. package/docs/namespace_bot_userAgent.html +0 -33
  219. package/docs/namespace_webdriver.html +0 -30
  220. package/docs/namespace_webdriver_By.html +0 -56
  221. package/docs/namespace_webdriver_http.html +0 -6
  222. package/docs/namespace_webdriver_logging.html +0 -70
  223. package/docs/namespace_webdriver_promise.html +0 -688
  224. package/docs/namespace_webdriver_stacktrace.html +0 -17
  225. package/docs/namespace_webdriver_testing.html +0 -7
  226. package/docs/namespace_webdriver_testing_assert.html +0 -9
  227. package/docs/namespace_webdriver_testing_asserts.html +0 -18
  228. package/docs/namespace_webdriver_until.html +0 -82
  229. package/docs/source/_base.js.src.html +0 -1
  230. package/docs/source/builder.js.src.html +0 -1
  231. package/docs/source/chrome.js.src.html +0 -1
  232. package/docs/source/error.js.src.html +0 -1
  233. package/docs/source/executors.js.src.html +0 -1
  234. package/docs/source/firefox/binary.js.src.html +0 -1
  235. package/docs/source/firefox/extension.js.src.html +0 -1
  236. package/docs/source/firefox/index.js.src.html +0 -1
  237. package/docs/source/firefox/profile.js.src.html +0 -1
  238. package/docs/source/http/index.js.src.html +0 -1
  239. package/docs/source/http/util.js.src.html +0 -1
  240. package/docs/source/ie.js.src.html +0 -1
  241. package/docs/source/index.js.src.html +0 -1
  242. package/docs/source/io/exec.js.src.html +0 -1
  243. package/docs/source/io/index.js.src.html +0 -1
  244. package/docs/source/lib/atoms/error.js.src.html +0 -1
  245. package/docs/source/lib/atoms/json.js.src.html +0 -1
  246. package/docs/source/lib/atoms/response.js.src.html +0 -1
  247. package/docs/source/lib/atoms/userAgent.js.src.html +0 -1
  248. package/docs/source/lib/goog/array/array.js.src.html +0 -1
  249. package/docs/source/lib/goog/asserts/asserts.js.src.html +0 -1
  250. package/docs/source/lib/goog/async/freelist.js.src.html +0 -1
  251. package/docs/source/lib/goog/async/nexttick.js.src.html +0 -1
  252. package/docs/source/lib/goog/async/run.js.src.html +0 -1
  253. package/docs/source/lib/goog/async/workqueue.js.src.html +0 -1
  254. package/docs/source/lib/goog/base.js.src.html +0 -1
  255. package/docs/source/lib/goog/debug/debug.js.src.html +0 -1
  256. package/docs/source/lib/goog/debug/entrypointregistry.js.src.html +0 -1
  257. package/docs/source/lib/goog/debug/error.js.src.html +0 -1
  258. package/docs/source/lib/goog/debug/logbuffer.js.src.html +0 -1
  259. package/docs/source/lib/goog/debug/logger.js.src.html +0 -1
  260. package/docs/source/lib/goog/debug/logrecord.js.src.html +0 -1
  261. package/docs/source/lib/goog/deps.js.src.html +0 -1
  262. package/docs/source/lib/goog/disposable/disposable.js.src.html +0 -1
  263. package/docs/source/lib/goog/disposable/idisposable.js.src.html +0 -1
  264. package/docs/source/lib/goog/dom/browserfeature.js.src.html +0 -1
  265. package/docs/source/lib/goog/dom/dom.js.src.html +0 -1
  266. package/docs/source/lib/goog/dom/nodetype.js.src.html +0 -1
  267. package/docs/source/lib/goog/dom/safe.js.src.html +0 -1
  268. package/docs/source/lib/goog/dom/tagname.js.src.html +0 -1
  269. package/docs/source/lib/goog/dom/tags.js.src.html +0 -1
  270. package/docs/source/lib/goog/dom/vendor.js.src.html +0 -1
  271. package/docs/source/lib/goog/events/browserevent.js.src.html +0 -1
  272. package/docs/source/lib/goog/events/browserfeature.js.src.html +0 -1
  273. package/docs/source/lib/goog/events/event.js.src.html +0 -1
  274. package/docs/source/lib/goog/events/eventid.js.src.html +0 -1
  275. package/docs/source/lib/goog/events/events.js.src.html +0 -1
  276. package/docs/source/lib/goog/events/eventtarget.js.src.html +0 -1
  277. package/docs/source/lib/goog/events/eventtype.js.src.html +0 -1
  278. package/docs/source/lib/goog/events/keycodes.js.src.html +0 -1
  279. package/docs/source/lib/goog/events/listenable.js.src.html +0 -1
  280. package/docs/source/lib/goog/events/listener.js.src.html +0 -1
  281. package/docs/source/lib/goog/events/listenermap.js.src.html +0 -1
  282. package/docs/source/lib/goog/fs/url.js.src.html +0 -1
  283. package/docs/source/lib/goog/functions/functions.js.src.html +0 -1
  284. package/docs/source/lib/goog/html/safehtml.js.src.html +0 -1
  285. package/docs/source/lib/goog/html/safescript.js.src.html +0 -1
  286. package/docs/source/lib/goog/html/safestyle.js.src.html +0 -1
  287. package/docs/source/lib/goog/html/safestylesheet.js.src.html +0 -1
  288. package/docs/source/lib/goog/html/safeurl.js.src.html +0 -1
  289. package/docs/source/lib/goog/html/trustedresourceurl.js.src.html +0 -1
  290. package/docs/source/lib/goog/html/uncheckedconversions.js.src.html +0 -1
  291. package/docs/source/lib/goog/i18n/bidi.js.src.html +0 -1
  292. package/docs/source/lib/goog/iter/iter.js.src.html +0 -1
  293. package/docs/source/lib/goog/json/json.js.src.html +0 -1
  294. package/docs/source/lib/goog/labs/testing/assertthat.js.src.html +0 -1
  295. package/docs/source/lib/goog/labs/testing/logicmatcher.js.src.html +0 -1
  296. package/docs/source/lib/goog/labs/testing/matcher.js.src.html +0 -1
  297. package/docs/source/lib/goog/labs/testing/numbermatcher.js.src.html +0 -1
  298. package/docs/source/lib/goog/labs/testing/objectmatcher.js.src.html +0 -1
  299. package/docs/source/lib/goog/labs/testing/stringmatcher.js.src.html +0 -1
  300. package/docs/source/lib/goog/labs/useragent/browser.js.src.html +0 -1
  301. package/docs/source/lib/goog/labs/useragent/engine.js.src.html +0 -1
  302. package/docs/source/lib/goog/labs/useragent/platform.js.src.html +0 -1
  303. package/docs/source/lib/goog/labs/useragent/util.js.src.html +0 -1
  304. package/docs/source/lib/goog/log/log.js.src.html +0 -1
  305. package/docs/source/lib/goog/math/box.js.src.html +0 -1
  306. package/docs/source/lib/goog/math/coordinate.js.src.html +0 -1
  307. package/docs/source/lib/goog/math/math.js.src.html +0 -1
  308. package/docs/source/lib/goog/math/rect.js.src.html +0 -1
  309. package/docs/source/lib/goog/math/size.js.src.html +0 -1
  310. package/docs/source/lib/goog/net/wrapperxmlhttpfactory.js.src.html +0 -1
  311. package/docs/source/lib/goog/net/xhrlike.js.src.html +0 -1
  312. package/docs/source/lib/goog/net/xmlhttp.js.src.html +0 -1
  313. package/docs/source/lib/goog/net/xmlhttpfactory.js.src.html +0 -1
  314. package/docs/source/lib/goog/object/object.js.src.html +0 -1
  315. package/docs/source/lib/goog/promise/promise.js.src.html +0 -1
  316. package/docs/source/lib/goog/promise/resolver.js.src.html +0 -1
  317. package/docs/source/lib/goog/promise/thenable.js.src.html +0 -1
  318. package/docs/source/lib/goog/reflect/reflect.js.src.html +0 -1
  319. package/docs/source/lib/goog/string/const.js.src.html +0 -1
  320. package/docs/source/lib/goog/string/string.js.src.html +0 -1
  321. package/docs/source/lib/goog/string/typedstring.js.src.html +0 -1
  322. package/docs/source/lib/goog/structs/collection.js.src.html +0 -1
  323. package/docs/source/lib/goog/structs/map.js.src.html +0 -1
  324. package/docs/source/lib/goog/structs/set.js.src.html +0 -1
  325. package/docs/source/lib/goog/structs/structs.js.src.html +0 -1
  326. package/docs/source/lib/goog/style/style.js.src.html +0 -1
  327. package/docs/source/lib/goog/testing/asserts.js.src.html +0 -1
  328. package/docs/source/lib/goog/testing/events/events.js.src.html +0 -1
  329. package/docs/source/lib/goog/testing/functionmock.js.src.html +0 -1
  330. package/docs/source/lib/goog/testing/jsunit.js.src.html +0 -1
  331. package/docs/source/lib/goog/testing/loosemock.js.src.html +0 -1
  332. package/docs/source/lib/goog/testing/mock.js.src.html +0 -1
  333. package/docs/source/lib/goog/testing/mockclock.js.src.html +0 -1
  334. package/docs/source/lib/goog/testing/mockcontrol.js.src.html +0 -1
  335. package/docs/source/lib/goog/testing/mockinterface.js.src.html +0 -1
  336. package/docs/source/lib/goog/testing/mockmatchers.js.src.html +0 -1
  337. package/docs/source/lib/goog/testing/objectpropertystring.js.src.html +0 -1
  338. package/docs/source/lib/goog/testing/propertyreplacer.js.src.html +0 -1
  339. package/docs/source/lib/goog/testing/recordfunction.js.src.html +0 -1
  340. package/docs/source/lib/goog/testing/stacktrace.js.src.html +0 -1
  341. package/docs/source/lib/goog/testing/strictmock.js.src.html +0 -1
  342. package/docs/source/lib/goog/testing/testcase.js.src.html +0 -1
  343. package/docs/source/lib/goog/testing/testrunner.js.src.html +0 -1
  344. package/docs/source/lib/goog/uri/uri.js.src.html +0 -1
  345. package/docs/source/lib/goog/uri/utils.js.src.html +0 -1
  346. package/docs/source/lib/goog/useragent/product.js.src.html +0 -1
  347. package/docs/source/lib/goog/useragent/product_isversion.js.src.html +0 -1
  348. package/docs/source/lib/goog/useragent/useragent.js.src.html +0 -1
  349. package/docs/source/lib/webdriver/actionsequence.js.src.html +0 -1
  350. package/docs/source/lib/webdriver/button.js.src.html +0 -1
  351. package/docs/source/lib/webdriver/capabilities.js.src.html +0 -1
  352. package/docs/source/lib/webdriver/command.js.src.html +0 -1
  353. package/docs/source/lib/webdriver/events.js.src.html +0 -1
  354. package/docs/source/lib/webdriver/http/http.js.src.html +0 -1
  355. package/docs/source/lib/webdriver/key.js.src.html +0 -1
  356. package/docs/source/lib/webdriver/locators.js.src.html +0 -1
  357. package/docs/source/lib/webdriver/logging.js.src.html +0 -1
  358. package/docs/source/lib/webdriver/promise.js.src.html +0 -1
  359. package/docs/source/lib/webdriver/serializable.js.src.html +0 -1
  360. package/docs/source/lib/webdriver/session.js.src.html +0 -1
  361. package/docs/source/lib/webdriver/stacktrace.js.src.html +0 -1
  362. package/docs/source/lib/webdriver/testing/asserts.js.src.html +0 -1
  363. package/docs/source/lib/webdriver/touchsequence.js.src.html +0 -1
  364. package/docs/source/lib/webdriver/until.js.src.html +0 -1
  365. package/docs/source/lib/webdriver/webdriver.js.src.html +0 -1
  366. package/docs/source/net/index.js.src.html +0 -1
  367. package/docs/source/net/portprober.js.src.html +0 -1
  368. package/docs/source/opera.js.src.html +0 -1
  369. package/docs/source/phantomjs.js.src.html +0 -1
  370. package/docs/source/proxy.js.src.html +0 -1
  371. package/docs/source/remote/index.js.src.html +0 -1
  372. package/docs/source/safari.js.src.html +0 -1
  373. package/docs/source/testing/assert.js.src.html +0 -1
  374. package/docs/source/testing/index.js.src.html +0 -1
  375. package/docs/types.js +0 -1
  376. package/lib/atoms/error.js +0 -202
  377. package/lib/atoms/json.js +0 -80
  378. package/lib/atoms/response.js +0 -110
  379. package/lib/atoms/userAgent.js +0 -257
  380. package/lib/goog/LICENSE +0 -176
  381. package/lib/goog/array/array.js +0 -1654
  382. package/lib/goog/asserts/asserts.js +0 -365
  383. package/lib/goog/async/freelist.js +0 -88
  384. package/lib/goog/async/nexttick.js +0 -241
  385. package/lib/goog/async/run.js +0 -133
  386. package/lib/goog/async/workqueue.js +0 -139
  387. package/lib/goog/base.js +0 -2548
  388. package/lib/goog/debug/debug.js +0 -653
  389. package/lib/goog/debug/entrypointregistry.js +0 -158
  390. package/lib/goog/debug/error.js +0 -63
  391. package/lib/goog/debug/logbuffer.js +0 -148
  392. package/lib/goog/debug/logger.js +0 -873
  393. package/lib/goog/debug/logrecord.js +0 -242
  394. package/lib/goog/deps.js +0 -151
  395. package/lib/goog/disposable/disposable.js +0 -307
  396. package/lib/goog/disposable/idisposable.js +0 -45
  397. package/lib/goog/dom/browserfeature.js +0 -72
  398. package/lib/goog/dom/dom.js +0 -2991
  399. package/lib/goog/dom/nodetype.js +0 -48
  400. package/lib/goog/dom/safe.js +0 -347
  401. package/lib/goog/dom/tagname.js +0 -160
  402. package/lib/goog/dom/tags.js +0 -41
  403. package/lib/goog/dom/vendor.js +0 -96
  404. package/lib/goog/events/browserevent.js +0 -400
  405. package/lib/goog/events/browserfeature.js +0 -85
  406. package/lib/goog/events/event.js +0 -143
  407. package/lib/goog/events/eventid.js +0 -47
  408. package/lib/goog/events/events.js +0 -984
  409. package/lib/goog/events/eventtarget.js +0 -394
  410. package/lib/goog/events/eventtype.js +0 -237
  411. package/lib/goog/events/keycodes.js +0 -427
  412. package/lib/goog/events/listenable.js +0 -335
  413. package/lib/goog/events/listener.js +0 -131
  414. package/lib/goog/events/listenermap.js +0 -308
  415. package/lib/goog/fs/url.js +0 -109
  416. package/lib/goog/functions/functions.js +0 -442
  417. package/lib/goog/html/safehtml.js +0 -757
  418. package/lib/goog/html/safescript.js +0 -234
  419. package/lib/goog/html/safestyle.js +0 -442
  420. package/lib/goog/html/safestylesheet.js +0 -276
  421. package/lib/goog/html/safeurl.js +0 -398
  422. package/lib/goog/html/trustedresourceurl.js +0 -224
  423. package/lib/goog/html/uncheckedconversions.js +0 -232
  424. package/lib/goog/i18n/bidi.js +0 -908
  425. package/lib/goog/iter/iter.js +0 -1302
  426. package/lib/goog/json/json.js +0 -363
  427. package/lib/goog/labs/testing/assertthat.js +0 -58
  428. package/lib/goog/labs/testing/logicmatcher.js +0 -212
  429. package/lib/goog/labs/testing/matcher.js +0 -80
  430. package/lib/goog/labs/testing/numbermatcher.js +0 -346
  431. package/lib/goog/labs/testing/objectmatcher.js +0 -317
  432. package/lib/goog/labs/testing/stringmatcher.js +0 -415
  433. package/lib/goog/labs/useragent/browser.js +0 -341
  434. package/lib/goog/labs/useragent/engine.js +0 -160
  435. package/lib/goog/labs/useragent/platform.js +0 -160
  436. package/lib/goog/labs/useragent/util.js +0 -148
  437. package/lib/goog/log/log.js +0 -197
  438. package/lib/goog/math/box.js +0 -398
  439. package/lib/goog/math/coordinate.js +0 -268
  440. package/lib/goog/math/math.js +0 -451
  441. package/lib/goog/math/rect.js +0 -476
  442. package/lib/goog/math/size.js +0 -227
  443. package/lib/goog/net/wrapperxmlhttpfactory.js +0 -71
  444. package/lib/goog/net/xhrlike.js +0 -124
  445. package/lib/goog/net/xmlhttp.js +0 -246
  446. package/lib/goog/net/xmlhttpfactory.js +0 -67
  447. package/lib/goog/object/object.js +0 -686
  448. package/lib/goog/promise/promise.js +0 -1350
  449. package/lib/goog/promise/resolver.js +0 -48
  450. package/lib/goog/promise/thenable.js +0 -126
  451. package/lib/goog/reflect/reflect.js +0 -77
  452. package/lib/goog/string/const.js +0 -182
  453. package/lib/goog/string/string.js +0 -1599
  454. package/lib/goog/string/typedstring.js +0 -48
  455. package/lib/goog/structs/collection.js +0 -56
  456. package/lib/goog/structs/map.js +0 -457
  457. package/lib/goog/structs/set.js +0 -279
  458. package/lib/goog/structs/structs.js +0 -354
  459. package/lib/goog/style/style.js +0 -2037
  460. package/lib/goog/testing/asserts.js +0 -1278
  461. package/lib/goog/testing/events/events.js +0 -767
  462. package/lib/goog/testing/functionmock.js +0 -175
  463. package/lib/goog/testing/jsunit.js +0 -162
  464. package/lib/goog/testing/loosemock.js +0 -242
  465. package/lib/goog/testing/mock.js +0 -645
  466. package/lib/goog/testing/mockclock.js +0 -606
  467. package/lib/goog/testing/mockcontrol.js +0 -220
  468. package/lib/goog/testing/mockinterface.js +0 -45
  469. package/lib/goog/testing/mockmatchers.js +0 -400
  470. package/lib/goog/testing/objectpropertystring.js +0 -68
  471. package/lib/goog/testing/propertyreplacer.js +0 -262
  472. package/lib/goog/testing/recordfunction.js +0 -215
  473. package/lib/goog/testing/stacktrace.js +0 -594
  474. package/lib/goog/testing/strictmock.js +0 -130
  475. package/lib/goog/testing/testcase.js +0 -1629
  476. package/lib/goog/testing/testrunner.js +0 -440
  477. package/lib/goog/uri/uri.js +0 -1524
  478. package/lib/goog/uri/utils.js +0 -1064
  479. package/lib/goog/useragent/product.js +0 -183
  480. package/lib/goog/useragent/product_isversion.js +0 -144
  481. package/lib/goog/useragent/useragent.js +0 -572
  482. package/lib/webdriver/actionsequence.js +0 -356
  483. package/lib/webdriver/builder.js +0 -207
  484. package/lib/webdriver/capabilities.js +0 -412
  485. package/lib/webdriver/events.js +0 -179
  486. package/lib/webdriver/firefoxdomexecutor.js +0 -175
  487. package/lib/webdriver/http/corsclient.js +0 -133
  488. package/lib/webdriver/http/http.js +0 -525
  489. package/lib/webdriver/http/xhrclient.js +0 -67
  490. package/lib/webdriver/locators.js +0 -257
  491. package/lib/webdriver/logging.js +0 -347
  492. package/lib/webdriver/session.js +0 -74
  493. package/lib/webdriver/stacktrace.js +0 -619
  494. package/lib/webdriver/test/builder_test.js +0 -53
  495. package/lib/webdriver/test/capabilities_test.js +0 -72
  496. package/lib/webdriver/test/events_test.js +0 -203
  497. package/lib/webdriver/test/http/corsclient_test.js +0 -151
  498. package/lib/webdriver/test/http/http_test.js +0 -428
  499. package/lib/webdriver/test/http/xhrclient_test.js +0 -196
  500. package/lib/webdriver/test/locators_test.js +0 -59
  501. package/lib/webdriver/test/logging_test.js +0 -85
  502. package/lib/webdriver/test/promise_error_test.js +0 -892
  503. package/lib/webdriver/test/promise_flow_test.js +0 -2365
  504. package/lib/webdriver/test/promise_generator_test.js +0 -323
  505. package/lib/webdriver/test/promise_test.js +0 -2012
  506. package/lib/webdriver/test/stacktrace_test.js +0 -480
  507. package/lib/webdriver/test/test_bootstrap.js +0 -67
  508. package/lib/webdriver/test/testing/asserts_test.js +0 -117
  509. package/lib/webdriver/test/testing/client_test.js +0 -88
  510. package/lib/webdriver/test/testing/testcase_test.js +0 -229
  511. package/lib/webdriver/test/testutil.js +0 -209
  512. package/lib/webdriver/test/testutil_test.js +0 -104
  513. package/lib/webdriver/test/until_test.js +0 -411
  514. package/lib/webdriver/test/webdriver_generator_test.js +0 -92
  515. package/lib/webdriver/test/webdriver_test.js +0 -2369
  516. package/lib/webdriver/testing/asserts.js +0 -487
  517. package/lib/webdriver/testing/client.js +0 -179
  518. package/lib/webdriver/testing/jsunit.js +0 -363
  519. package/lib/webdriver/testing/testcase.js +0 -168
  520. package/lib/webdriver/testing/window.js +0 -244
  521. package/lib/webdriver/touchsequence.js +0 -248
  522. package/lib/webdriver/until.js +0 -412
  523. package/lib/webdriver/webdriver.js +0 -2511
  524. package/test/_base_test.js +0 -129
package/error.js CHANGED
@@ -17,11 +17,603 @@
17
17
 
18
18
  'use strict';
19
19
 
20
- var base = require('./_base');
20
+ /**
21
+ * The base WebDriver error type. This error type is only used directly when a
22
+ * more appropriate category is not defined for the offending error.
23
+ */
24
+ class WebDriverError extends Error {
25
+ /** @param {string=} opt_error the error message, if any. */
26
+ constructor(opt_error) {
27
+ super(opt_error);
21
28
 
29
+ /** @override */
30
+ this.name = this.constructor.name;
31
+ }
22
32
 
23
- /** @type {function(new: bot.Error)} */
24
- exports.Error = base.require('bot.Error');
33
+ /**
34
+ * @return {number} the legacy numeric code for this class of error.
35
+ * @deprecated
36
+ */
37
+ static get code() {
38
+ return ErrorCode.UNKNOWN_ERROR;
39
+ }
25
40
 
26
- /** @type {bot.ErrorCode.} */
27
- exports.ErrorCode = base.require('bot.ErrorCode');
41
+ /**
42
+ * @return {number} the legacy numeric code for this class of error.
43
+ * @deprecated
44
+ */
45
+ get code() {
46
+ return this.constructor.code;
47
+ }
48
+ }
49
+
50
+
51
+ /**
52
+ * An attempt was made to select an element that cannot be selected.
53
+ */
54
+ class ElementNotSelectableError extends WebDriverError {
55
+ /** @param {string=} opt_error the error message, if any. */
56
+ constructor(opt_error) {
57
+ super(opt_error);
58
+ }
59
+
60
+ /** @override */
61
+ static get code() {
62
+ return ErrorCode.ELEMENT_NOT_SELECTABLE;
63
+ }
64
+ }
65
+
66
+
67
+ /**
68
+ * An element command could not be completed because the element is not visible
69
+ * on the page.
70
+ */
71
+ class ElementNotVisibleError extends WebDriverError {
72
+ /** @param {string=} opt_error the error message, if any. */
73
+ constructor(opt_error) {
74
+ super(opt_error);
75
+ }
76
+
77
+ /** @override */
78
+ static get code() {
79
+ return ErrorCode.ELEMENT_NOT_VISIBLE;
80
+ }
81
+ }
82
+
83
+
84
+ /**
85
+ * The arguments passed to a command are either invalid or malformed.
86
+ */
87
+ class InvalidArgumentError extends WebDriverError {
88
+ /** @param {string=} opt_error the error message, if any. */
89
+ constructor(opt_error) {
90
+ super(opt_error);
91
+ }
92
+ }
93
+
94
+
95
+ /**
96
+ * An illegal attempt was made to set a cookie under a different domain than
97
+ * the current page.
98
+ */
99
+ class InvalidCookieDomainError extends WebDriverError {
100
+ /** @param {string=} opt_error the error message, if any. */
101
+ constructor(opt_error) {
102
+ super(opt_error);
103
+ }
104
+
105
+ /** @override */
106
+ static get code() {
107
+ return ErrorCode.INVALID_COOKIE_DOMAIN;
108
+ }
109
+ }
110
+
111
+
112
+ /**
113
+ * The coordinates provided to an interactions operation are invalid.
114
+ */
115
+ class InvalidElementCoordinatesError extends WebDriverError {
116
+ /** @param {string=} opt_error the error message, if any. */
117
+ constructor(opt_error) {
118
+ super(opt_error);
119
+ }
120
+
121
+ /** @override */
122
+ static get code() {
123
+ return ErrorCode.INVALID_ELEMENT_COORDINATES;
124
+ }
125
+ }
126
+
127
+
128
+ /**
129
+ * An element command could not be completed because the element is in an
130
+ * invalid state, e.g. attempting to click an element that is no longer attached
131
+ * to the document.
132
+ */
133
+ class InvalidElementStateError extends WebDriverError {
134
+ /** @param {string=} opt_error the error message, if any. */
135
+ constructor(opt_error) {
136
+ super(opt_error);
137
+ }
138
+
139
+ /** @override */
140
+ static get code() {
141
+ return ErrorCode.INVALID_ELEMENT_STATE;
142
+ }
143
+ }
144
+
145
+
146
+ /**
147
+ * Argument was an invalid selector.
148
+ */
149
+ class InvalidSelectorError extends WebDriverError {
150
+ /** @param {string=} opt_error the error message, if any. */
151
+ constructor(opt_error) {
152
+ super(opt_error);
153
+ }
154
+
155
+ /** @override */
156
+ static get code() {
157
+ return ErrorCode.INVALID_SELECTOR_ERROR;
158
+ }
159
+ }
160
+
161
+
162
+ /**
163
+ * Occurs if the given session id is not in the list of active sessions, meaning
164
+ * the session either does not exist or that it’s not active.
165
+ */
166
+ class InvalidSessionIdError extends WebDriverError {
167
+ /** @param {string=} opt_error the error message, if any. */
168
+ constructor(opt_error) {
169
+ super(opt_error);
170
+ }
171
+ }
172
+
173
+
174
+ /**
175
+ * An error occurred while executing JavaScript supplied by the user.
176
+ */
177
+ class JavascriptError extends WebDriverError {
178
+ /** @param {string=} opt_error the error message, if any. */
179
+ constructor(opt_error) {
180
+ super(opt_error);
181
+ }
182
+
183
+ /** @override */
184
+ static get code() {
185
+ return ErrorCode.JAVASCRIPT_ERROR;
186
+ }
187
+ }
188
+
189
+
190
+ /**
191
+ * The target for mouse interaction is not in the browser’s viewport and cannot
192
+ * be brought into that viewport.
193
+ */
194
+ class MoveTargetOutOfBoundsError extends WebDriverError {
195
+ /** @param {string=} opt_error the error message, if any. */
196
+ constructor(opt_error) {
197
+ super(opt_error);
198
+ }
199
+
200
+ /** @override */
201
+ static get code() {
202
+ return ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS;
203
+ }
204
+ }
205
+
206
+
207
+ /**
208
+ * An attempt was made to operate on a modal dialog when one was not open.
209
+ */
210
+ class NoSuchAlertError extends WebDriverError {
211
+ /** @param {string=} opt_error the error message, if any. */
212
+ constructor(opt_error) {
213
+ super(opt_error);
214
+ }
215
+
216
+ /** @override */
217
+ static get code() {
218
+ return ErrorCode.NO_SUCH_ALERT;
219
+ }
220
+ }
221
+
222
+
223
+ /**
224
+ * An element could not be located on the page using the given search
225
+ * parameters.
226
+ */
227
+ class NoSuchElementError extends WebDriverError {
228
+ /** @param {string=} opt_error the error message, if any. */
229
+ constructor(opt_error) {
230
+ super(opt_error);
231
+ }
232
+
233
+ /** @override */
234
+ static get code() {
235
+ return ErrorCode.NO_SUCH_ELEMENT;
236
+ }
237
+ }
238
+
239
+
240
+ /**
241
+ * A request to switch to a frame could not be satisfied because the frame
242
+ * could not be found.
243
+ */
244
+ class NoSuchFrameError extends WebDriverError {
245
+ /** @param {string=} opt_error the error message, if any. */
246
+ constructor(opt_error) {
247
+ super(opt_error);
248
+ }
249
+
250
+ /** @override */
251
+ static get code() {
252
+ return ErrorCode.NO_SUCH_FRAME;
253
+ }
254
+ }
255
+
256
+
257
+ /**
258
+ * A request to switch to a window could not be satisfied because the window
259
+ * could not be found.
260
+ */
261
+ class NoSuchWindowError extends WebDriverError {
262
+ /** @param {string=} opt_error the error message, if any. */
263
+ constructor(opt_error) {
264
+ super(opt_error);
265
+ }
266
+
267
+ /** @override */
268
+ static get code() {
269
+ return ErrorCode.NO_SUCH_WINDOW;
270
+ }
271
+ }
272
+
273
+
274
+ /**
275
+ * A script did not complete before its timeout expired.
276
+ */
277
+ class ScriptTimeoutError extends WebDriverError {
278
+ /** @param {string=} opt_error the error message, if any. */
279
+ constructor(opt_error) {
280
+ super(opt_error);
281
+ }
282
+
283
+ /** @override */
284
+ static get code() {
285
+ return ErrorCode.SCRIPT_TIMEOUT;
286
+ }
287
+ }
288
+
289
+
290
+ /**
291
+ * A new session could not be created.
292
+ */
293
+ class SessionNotCreatedError extends WebDriverError {
294
+ /** @param {string=} opt_error the error message, if any. */
295
+ constructor(opt_error) {
296
+ super(opt_error);
297
+ }
298
+
299
+ /** @override */
300
+ static get code() {
301
+ return ErrorCode.SESSION_NOT_CREATED;
302
+ }
303
+ }
304
+
305
+
306
+
307
+ /**
308
+ * An element command failed because the referenced element is no longer
309
+ * attached to the DOM.
310
+ */
311
+ class StaleElementReferenceError extends WebDriverError {
312
+ /** @param {string=} opt_error the error message, if any. */
313
+ constructor(opt_error) {
314
+ super(opt_error);
315
+ }
316
+
317
+ /** @override */
318
+ static get code() {
319
+ return ErrorCode.STALE_ELEMENT_REFERENCE;
320
+ }
321
+ }
322
+
323
+
324
+ /**
325
+ * An operation did not complete before its timeout expired.
326
+ */
327
+ class TimeoutError extends WebDriverError {
328
+ /** @param {string=} opt_error the error message, if any. */
329
+ constructor(opt_error) {
330
+ super(opt_error);
331
+ }
332
+
333
+ /** @override */
334
+ static get code() {
335
+ return ErrorCode.TIMEOUT;
336
+ }
337
+ }
338
+
339
+
340
+ /**
341
+ * A request to set a cookie’s value could not be satisfied.
342
+ */
343
+ class UnableToSetCookieError extends WebDriverError {
344
+ /** @param {string=} opt_error the error message, if any. */
345
+ constructor(opt_error) {
346
+ super(opt_error);
347
+ }
348
+
349
+ /** @override */
350
+ static get code() {
351
+ return ErrorCode.UNABLE_TO_SET_COOKIE;
352
+ }
353
+ }
354
+
355
+
356
+ /**
357
+ * A screen capture operation was not possible.
358
+ */
359
+ class UnableToCaptureScreenError extends WebDriverError {
360
+ /** @param {string=} opt_error the error message, if any. */
361
+ constructor(opt_error) {
362
+ super(opt_error);
363
+ }
364
+ }
365
+
366
+
367
+ /**
368
+ * A modal dialog was open, blocking this operation.
369
+ */
370
+ class UnexpectedAlertOpenError extends WebDriverError {
371
+ /**
372
+ * @param {string=} opt_error the error message, if any.
373
+ * @param {string=} opt_text the text of the open dialog, if available.
374
+ */
375
+ constructor(opt_error, opt_text) {
376
+ super(opt_error);
377
+
378
+ /** @private {(string|undefined)} */
379
+ this.text_ = opt_text;
380
+ }
381
+
382
+ /** @override */
383
+ static get code() {
384
+ return ErrorCode.UNEXPECTED_ALERT_OPEN;
385
+ }
386
+
387
+ /**
388
+ * @return {(string|undefined)} The text displayed with the unhandled alert,
389
+ * if available.
390
+ */
391
+ getAlertText() {
392
+ return this.text_;
393
+ }
394
+ }
395
+
396
+
397
+ /**
398
+ * A command could not be executed because the remote end is not aware of it.
399
+ */
400
+ class UnknownCommandError extends WebDriverError {
401
+ /** @param {string=} opt_error the error message, if any. */
402
+ constructor(opt_error) {
403
+ super(opt_error);
404
+ }
405
+
406
+ /** @override */
407
+ static get code() {
408
+ return ErrorCode.UNSUPPORTED_OPERATION;
409
+ }
410
+ }
411
+
412
+
413
+ /**
414
+ * The requested command matched a known URL but did not match an method for
415
+ * that URL.
416
+ */
417
+ class UnknownMethodError extends WebDriverError {
418
+ /** @param {string=} opt_error the error message, if any. */
419
+ constructor(opt_error) {
420
+ super(opt_error);
421
+ }
422
+
423
+ /** @override */
424
+ static get code() {
425
+ return ErrorCode.UNSUPPORTED_OPERATION;
426
+ }
427
+ }
428
+
429
+
430
+ /**
431
+ * Reports an unsupport operation.
432
+ */
433
+ class UnsupportedOperationError extends WebDriverError {
434
+ /** @param {string=} opt_error the error message, if any. */
435
+ constructor(opt_error) {
436
+ super(opt_error);
437
+ }
438
+
439
+ /** @override */
440
+ static get code() {
441
+ return ErrorCode.UNSUPPORTED_OPERATION;
442
+ }
443
+ }
444
+
445
+ // TODO(jleyba): Define UnknownError as an alias of WebDriverError?
446
+
447
+
448
+ /**
449
+ * Enum of legacy error codes.
450
+ * TODO: remove this when all code paths have been switched to the new error
451
+ * types.
452
+ * @deprecated
453
+ * @enum {number}
454
+ */
455
+ const ErrorCode = {
456
+ SUCCESS: 0,
457
+ NO_SUCH_ELEMENT: 7,
458
+ NO_SUCH_FRAME: 8,
459
+ UNKNOWN_COMMAND: 9,
460
+ UNSUPPORTED_OPERATION: 9,
461
+ STALE_ELEMENT_REFERENCE: 10,
462
+ ELEMENT_NOT_VISIBLE: 11,
463
+ INVALID_ELEMENT_STATE: 12,
464
+ UNKNOWN_ERROR: 13,
465
+ ELEMENT_NOT_SELECTABLE: 15,
466
+ JAVASCRIPT_ERROR: 17,
467
+ XPATH_LOOKUP_ERROR: 19,
468
+ TIMEOUT: 21,
469
+ NO_SUCH_WINDOW: 23,
470
+ INVALID_COOKIE_DOMAIN: 24,
471
+ UNABLE_TO_SET_COOKIE: 25,
472
+ UNEXPECTED_ALERT_OPEN: 26,
473
+ NO_SUCH_ALERT: 27,
474
+ SCRIPT_TIMEOUT: 28,
475
+ INVALID_ELEMENT_COORDINATES: 29,
476
+ IME_NOT_AVAILABLE: 30,
477
+ IME_ENGINE_ACTIVATION_FAILED: 31,
478
+ INVALID_SELECTOR_ERROR: 32,
479
+ SESSION_NOT_CREATED: 33,
480
+ MOVE_TARGET_OUT_OF_BOUNDS: 34,
481
+ SQL_DATABASE_ERROR: 35,
482
+ INVALID_XPATH_SELECTOR: 51,
483
+ INVALID_XPATH_SELECTOR_RETURN_TYPE: 52,
484
+ METHOD_NOT_ALLOWED: 405
485
+ };
486
+
487
+
488
+ const LEGACY_ERROR_CODE_TO_TYPE = new Map([
489
+ [ErrorCode.NO_SUCH_ELEMENT, NoSuchElementError],
490
+ [ErrorCode.NO_SUCH_FRAME, NoSuchFrameError],
491
+ [ErrorCode.UNSUPPORTED_OPERATION, UnsupportedOperationError],
492
+ [ErrorCode.STALE_ELEMENT_REFERENCE, StaleElementReferenceError],
493
+ [ErrorCode.ELEMENT_NOT_VISIBLE, ElementNotVisibleError],
494
+ [ErrorCode.INVALID_ELEMENT_STATE, InvalidElementStateError],
495
+ [ErrorCode.UNKNOWN_ERROR, WebDriverError],
496
+ [ErrorCode.ELEMENT_NOT_SELECTABLE, ElementNotSelectableError],
497
+ [ErrorCode.JAVASCRIPT_ERROR, JavascriptError],
498
+ [ErrorCode.XPATH_LOOKUP_ERROR, InvalidSelectorError],
499
+ [ErrorCode.TIMEOUT, TimeoutError],
500
+ [ErrorCode.NO_SUCH_WINDOW, NoSuchWindowError],
501
+ [ErrorCode.INVALID_COOKIE_DOMAIN, InvalidCookieDomainError],
502
+ [ErrorCode.UNABLE_TO_SET_COOKIE, UnableToSetCookieError],
503
+ [ErrorCode.UNEXPECTED_ALERT_OPEN, UnexpectedAlertOpenError],
504
+ [ErrorCode.NO_SUCH_ALERT, NoSuchAlertError],
505
+ [ErrorCode.SCRIPT_TIMEOUT, ScriptTimeoutError],
506
+ [ErrorCode.INVALID_ELEMENT_COORDINATES, InvalidElementCoordinatesError],
507
+ [ErrorCode.INVALID_SELECTOR_ERROR, InvalidSelectorError],
508
+ [ErrorCode.SESSION_NOT_CREATED, SessionNotCreatedError],
509
+ [ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS, MoveTargetOutOfBoundsError],
510
+ [ErrorCode.INVALID_XPATH_SELECTOR, InvalidSelectorError],
511
+ [ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPE, InvalidSelectorError],
512
+ [ErrorCode.METHOD_NOT_ALLOWED, UnsupportedOperationError]]);
513
+
514
+
515
+ const ERROR_CODE_TO_TYPE = new Map([
516
+ ['unknown error', WebDriverError],
517
+ ['element not selectable', ElementNotSelectableError],
518
+ ['element not visible', ElementNotVisibleError],
519
+ ['invalid argument', InvalidArgumentError],
520
+ ['invalid cookie domain', InvalidCookieDomainError],
521
+ ['invalid element coordinates', InvalidElementCoordinatesError],
522
+ ['invalid element state', InvalidElementStateError],
523
+ ['invalid selector', InvalidSelectorError],
524
+ ['invalid session id', InvalidSessionIdError],
525
+ ['javascript error', JavascriptError],
526
+ ['move target out of bounds', MoveTargetOutOfBoundsError],
527
+ ['no such alert', NoSuchAlertError],
528
+ ['no such element', NoSuchElementError],
529
+ ['no such frame', NoSuchFrameError],
530
+ ['no such window', NoSuchWindowError],
531
+ ['script timeout', ScriptTimeoutError],
532
+ ['session not created', SessionNotCreatedError],
533
+ ['stale element reference', StaleElementReferenceError],
534
+ ['timeout', TimeoutError],
535
+ ['unable to set cookie', UnableToSetCookieError],
536
+ ['unable to capture screen', UnableToCaptureScreenError],
537
+ ['unexpected alert open', UnexpectedAlertOpenError],
538
+ ['unknown command', UnknownCommandError],
539
+ ['unknown method', UnknownMethodError],
540
+ ['unsupported operation', UnsupportedOperationError]]);
541
+
542
+
543
+ /**
544
+ * Checks a response object from a server that adheres to the W3C WebDriver
545
+ * protocol.
546
+ * @param {*} data The response data to check.
547
+ * @return {*} The response data if it was not an encoded error.
548
+ * @throws {WebDriverError} the decoded error, if present in the data object.
549
+ * @see https://w3c.github.io/webdriver/webdriver-spec.html#protocol
550
+ */
551
+ function checkResponse(data) {
552
+ if (data && typeof data.error === 'string') {
553
+ let ctor = ERROR_CODE_TO_TYPE.get(data.error) || WebDriverError;
554
+ throw new ctor(data.message);
555
+ }
556
+ return data;
557
+ }
558
+
559
+
560
+ /**
561
+ * Checks a legacy response from the Selenium 2.0 wire protocol for an error.
562
+ * @param {*} responseObj the response object to check.
563
+ * @return {*} responseObj the original response if it does not define an error.
564
+ * @throws {WebDriverError} if the response object defines an error.
565
+ */
566
+ function checkLegacyResponse(responseObj) {
567
+ // Handle the legacy Selenium error response format.
568
+ if (responseObj
569
+ && typeof responseObj === 'object'
570
+ && typeof responseObj['status'] === 'number'
571
+ && responseObj['status'] !== 0) {
572
+ let status = responseObj['status'];
573
+ let ctor = LEGACY_ERROR_CODE_TO_TYPE.get(status) || WebDriverError;
574
+
575
+ let value = responseObj['value'];
576
+
577
+ if (!value || typeof value !== 'object') {
578
+ throw new ctor(value + '');
579
+ } else {
580
+ throw new ctor(value['message'] + '');
581
+ }
582
+ }
583
+ return responseObj;
584
+ }
585
+
586
+
587
+ // PUBLIC API
588
+
589
+
590
+ exports.ErrorCode = ErrorCode;
591
+
592
+ exports.WebDriverError = WebDriverError;
593
+ exports.ElementNotSelectableError = ElementNotSelectableError;
594
+ exports.ElementNotVisibleError = ElementNotVisibleError;
595
+ exports.InvalidArgumentError = InvalidArgumentError;
596
+ exports.InvalidCookieDomainError = InvalidCookieDomainError;
597
+ exports.InvalidElementCoordinatesError = InvalidElementCoordinatesError;
598
+ exports.InvalidElementStateError = InvalidElementStateError;
599
+ exports.InvalidSelectorError = InvalidSelectorError;
600
+ exports.InvalidSessionIdError = InvalidSessionIdError;
601
+ exports.JavascriptError = JavascriptError;
602
+ exports.MoveTargetOutOfBoundsError = MoveTargetOutOfBoundsError;
603
+ exports.NoSuchAlertError = NoSuchAlertError;
604
+ exports.NoSuchElementError = NoSuchElementError;
605
+ exports.NoSuchFrameError = NoSuchFrameError;
606
+ exports.NoSuchWindowError = NoSuchWindowError;
607
+ exports.ScriptTimeoutError = ScriptTimeoutError;
608
+ exports.SessionNotCreatedError = SessionNotCreatedError;
609
+ exports.StaleElementReferenceError = StaleElementReferenceError;
610
+ exports.TimeoutError = TimeoutError;
611
+ exports.UnableToSetCookieError = UnableToSetCookieError;
612
+ exports.UnableToCaptureScreenError = UnableToCaptureScreenError;
613
+ exports.UnexpectedAlertOpenError = UnexpectedAlertOpenError;
614
+ exports.UnknownCommandError = UnknownCommandError;
615
+ exports.UnknownMethodError = UnknownMethodError;
616
+ exports.UnsupportedOperationError = UnsupportedOperationError;
617
+
618
+ exports.checkResponse = checkResponse;
619
+ exports.checkLegacyResponse = checkLegacyResponse;
@@ -16,11 +16,9 @@
16
16
  // under the License.
17
17
 
18
18
  /**
19
- * @fileoverview An example WebDriver script using Harmony generator functions.
20
- * This requires node v0.11 or newer.
19
+ * @fileoverview An example WebDriver script using generator functions.
21
20
  *
22
- * Usage: node --harmony-generators \
23
- * selenium-webdriver/example/google_search_generator.js
21
+ * Usage: node selenium-webdriver/example/google_search_generator.js
24
22
  */
25
23
 
26
24
  var webdriver = require('..'),
@@ -26,14 +26,18 @@ var webdriver = require('..'),
26
26
  until = webdriver.until;
27
27
 
28
28
  webdriver.logging.installConsoleHandler();
29
- webdriver.logging.getLogger().setLevel(webdriver.logging.Level.ALL);
29
+ webdriver.logging.getLogger('webdriver.http')
30
+ .setLevel(webdriver.logging.Level.ALL);
30
31
 
31
32
  var driver = new webdriver.Builder()
32
33
  .forBrowser('firefox')
33
34
  .build();
34
35
 
35
36
  driver.get('http://www.google.com/ncr');
36
- driver.findElement(By.name('q')).sendKeys('webdriver');
37
+
38
+ var searchBox = driver.wait(until.elementLocated(By.name('q')), 3000);
39
+ searchBox.sendKeys('webdriver');
40
+
37
41
  driver.findElement(By.name('btnG')).click();
38
42
  driver.wait(until.titleIs('webdriver - Google Search'), 1000);
39
43
  driver.quit();
package/executors.js CHANGED
@@ -16,47 +16,31 @@
16
16
  // under the License.
17
17
 
18
18
  /**
19
- * @fileoverview Various utilities for working with
20
- * {@link webdriver.CommandExecutor} implementations.
19
+ * @fileoverview Various utilities for working with {@link ./command.Executor}
20
+ * implementations.
21
21
  */
22
22
 
23
- var HttpClient = require('./http').HttpClient,
24
- HttpExecutor = require('./http').Executor,
25
- promise = require('./_base').require('webdriver.promise');
26
-
27
-
28
-
29
- /**
30
- * Wraps a promised {@link webdriver.CommandExecutor}, ensuring no commands
31
- * are executed until the wrapped executor has been fully built.
32
- * @param {!webdriver.promise.Promise.<!webdriver.CommandExecutor>} delegate The
33
- * promised delegate.
34
- * @constructor
35
- * @implements {webdriver.CommandExecutor}
36
- */
37
- var DeferredExecutor = function(delegate) {
23
+ 'use strict';
38
24
 
39
- /** @override */
40
- this.execute = function(command, callback) {
41
- delegate.then(function(executor) {
42
- executor.execute(command, callback);
43
- }, callback);
44
- };
45
- };
25
+ const HttpClient = require('./http').HttpClient,
26
+ HttpExecutor = require('./http').Executor,
27
+ DeferredExecutor = require('./lib/command').DeferredExecutor,
28
+ promise = require('./lib/promise');
46
29
 
47
30
 
48
31
  // PUBLIC API
49
32
 
50
33
 
34
+ /** @deprecated Use {@link ./lib/command.DeferredExecutor} instead. */
51
35
  exports.DeferredExecutor = DeferredExecutor;
52
36
 
53
37
  /**
54
38
  * Creates a command executor that uses WebDriver's JSON wire protocol.
55
- * @param {(string|!webdriver.promise.Promise.<string>)} url The server's URL,
39
+ * @param {(string|!promise.Promise<string>)} url The server's URL,
56
40
  * or a promise that will resolve to that URL.
57
- * @param {string=} opt_proxy (optional) The URL of the HTTP proxy for the
41
+ * @param {?string=} opt_proxy (optional) The URL of the HTTP proxy for the
58
42
  * client to use.
59
- * @returns {!webdriver.CommandExecutor} The new command executor.
43
+ * @returns {!./lib/command.Executor} The new command executor.
60
44
  */
61
45
  exports.createExecutor = function(url, opt_proxy) {
62
46
  return new DeferredExecutor(promise.when(url, function(url) {