selenium-webdriver 4.1.0 → 4.1.1

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/lib/http.js CHANGED
@@ -31,7 +31,7 @@ const error = require('./error')
31
31
  const logging = require('./logging')
32
32
  const promise = require('./promise')
33
33
  const { Session } = require('./session')
34
- const { WebElement, ShadowRoot } = require('./webdriver')
34
+ const { WebElement } = require('./webdriver')
35
35
 
36
36
  const getAttribute = requireAtom(
37
37
  'get-attribute.js',
@@ -173,12 +173,13 @@ var CommandSpec // eslint-disable-line
173
173
  /** @typedef {function(!cmd.Command): !cmd.Command} */
174
174
  var CommandTransformer // eslint-disable-line
175
175
 
176
- class InternalTypeError extends TypeError { }
176
+ class InternalTypeError extends TypeError {}
177
177
 
178
178
  /**
179
179
  * @param {!cmd.Command} command The initial command.
180
180
  * @param {Atom} atom The name of the atom to execute.
181
- * @return {!cmd.Command} The transformed command to execute.
181
+ * @param params
182
+ * @return {!Command} The transformed command to execute.
182
183
  */
183
184
  function toExecuteAtomCommand(command, atom, ...params) {
184
185
  if (typeof atom !== 'function') {
@@ -194,143 +195,39 @@ function toExecuteAtomCommand(command, atom, ...params) {
194
195
  )
195
196
  }
196
197
 
197
- /** @const {!Map<string, CommandSpec>} */
198
- const COMMAND_MAP = new Map([
199
- [cmd.Name.GET_SERVER_STATUS, get('/status')],
200
- [cmd.Name.NEW_SESSION, post('/session')],
201
- [cmd.Name.GET_SESSIONS, get('/sessions')],
202
- [cmd.Name.QUIT, del('/session/:sessionId')],
203
- [cmd.Name.CLOSE, del('/session/:sessionId/window')],
204
- [
205
- cmd.Name.GET_CURRENT_WINDOW_HANDLE,
206
- get('/session/:sessionId/window_handle'),
207
- ],
208
- [cmd.Name.GET_WINDOW_HANDLES, get('/session/:sessionId/window_handles')],
209
- [cmd.Name.GET_CURRENT_URL, get('/session/:sessionId/url')],
210
- [cmd.Name.GET, post('/session/:sessionId/url')],
211
- [cmd.Name.GO_BACK, post('/session/:sessionId/back')],
212
- [cmd.Name.GO_FORWARD, post('/session/:sessionId/forward')],
213
- [cmd.Name.REFRESH, post('/session/:sessionId/refresh')],
214
- [cmd.Name.ADD_COOKIE, post('/session/:sessionId/cookie')],
215
- [cmd.Name.GET_ALL_COOKIES, get('/session/:sessionId/cookie')],
216
- [cmd.Name.DELETE_ALL_COOKIES, del('/session/:sessionId/cookie')],
217
- [cmd.Name.DELETE_COOKIE, del('/session/:sessionId/cookie/:name')],
218
- [cmd.Name.FIND_ELEMENT, post('/session/:sessionId/element')],
219
- [cmd.Name.FIND_ELEMENTS, post('/session/:sessionId/elements')],
220
- [cmd.Name.GET_ACTIVE_ELEMENT, post('/session/:sessionId/element/active')],
221
- [
222
- cmd.Name.FIND_CHILD_ELEMENT,
223
- post('/session/:sessionId/element/:id/element'),
224
- ],
225
- [
226
- cmd.Name.FIND_CHILD_ELEMENTS,
227
- post('/session/:sessionId/element/:id/elements'),
228
- ],
229
- [cmd.Name.CLEAR_ELEMENT, post('/session/:sessionId/element/:id/clear')],
230
- [cmd.Name.CLICK_ELEMENT, post('/session/:sessionId/element/:id/click')],
231
- [
232
- cmd.Name.SEND_KEYS_TO_ELEMENT,
233
- post('/session/:sessionId/element/:id/value'),
234
- ],
235
- [cmd.Name.SUBMIT_ELEMENT, post('/session/:sessionId/element/:id/submit')],
236
- [cmd.Name.GET_ELEMENT_TEXT, get('/session/:sessionId/element/:id/text')],
237
- [
238
- cmd.Name.GET_COMPUTED_ROLE,
239
- get('/session/:sessionId/element/:id/computedrole'),
240
- ],
241
- [
242
- cmd.Name.GET_COMPUTED_LABEL,
243
- get('/session/:sessionId/element/:id/computedlabel'),
244
- ],
245
- [cmd.Name.GET_ELEMENT_TAG_NAME, get('/session/:sessionId/element/:id/name')],
246
- [
247
- cmd.Name.IS_ELEMENT_SELECTED,
248
- get('/session/:sessionId/element/:id/selected'),
249
- ],
250
- [cmd.Name.IS_ELEMENT_ENABLED, get('/session/:sessionId/element/:id/enabled')],
251
- [
252
- cmd.Name.IS_ELEMENT_DISPLAYED,
253
- get('/session/:sessionId/element/:id/displayed'),
254
- ],
255
- [
256
- cmd.Name.GET_ELEMENT_LOCATION,
257
- get('/session/:sessionId/element/:id/location'),
258
- ],
259
- [cmd.Name.GET_ELEMENT_SIZE, get('/session/:sessionId/element/:id/size')],
260
- [
261
- cmd.Name.GET_ELEMENT_ATTRIBUTE,
262
- get('/session/:sessionId/element/:id/attribute/:name'),
263
- ],
264
- [
265
- cmd.Name.GET_ELEMENT_PROPERTY,
266
- get('/session/:sessionId/element/:id/property/:name'),
267
- ],
268
- [
269
- cmd.Name.GET_ELEMENT_VALUE_OF_CSS_PROPERTY,
270
- get('/session/:sessionId/element/:id/css/:propertyName'),
271
- ],
272
- [
273
- cmd.Name.TAKE_ELEMENT_SCREENSHOT,
274
- get('/session/:sessionId/element/:id/screenshot'),
275
- ],
276
- [cmd.Name.SWITCH_TO_WINDOW, post('/session/:sessionId/window')],
277
- [
278
- cmd.Name.MAXIMIZE_WINDOW,
279
- post('/session/:sessionId/window/current/maximize'),
280
- ],
281
- [
282
- cmd.Name.GET_WINDOW_POSITION,
283
- get('/session/:sessionId/window/current/position'),
284
- ],
285
- [
286
- cmd.Name.SET_WINDOW_POSITION,
287
- post('/session/:sessionId/window/current/position'),
288
- ],
289
- [cmd.Name.GET_WINDOW_SIZE, get('/session/:sessionId/window/current/size')],
290
- [cmd.Name.SET_WINDOW_SIZE, post('/session/:sessionId/window/current/size')],
291
- [cmd.Name.SWITCH_TO_FRAME, post('/session/:sessionId/frame')],
292
- [cmd.Name.SWITCH_TO_FRAME_PARENT, post('/session/:sessionId/frame/parent')],
293
- [cmd.Name.GET_PAGE_SOURCE, get('/session/:sessionId/source')],
294
- [cmd.Name.GET_TITLE, get('/session/:sessionId/title')],
295
- [cmd.Name.EXECUTE_SCRIPT, post('/session/:sessionId/execute')],
296
- [cmd.Name.EXECUTE_ASYNC_SCRIPT, post('/session/:sessionId/execute_async')],
297
- [cmd.Name.SCREENSHOT, get('/session/:sessionId/screenshot')],
298
- [cmd.Name.GET_TIMEOUT, get('/session/:sessionId/timeouts')],
299
- [cmd.Name.SET_TIMEOUT, post('/session/:sessionId/timeouts')],
300
- [cmd.Name.ACCEPT_ALERT, post('/session/:sessionId/accept_alert')],
301
- [cmd.Name.DISMISS_ALERT, post('/session/:sessionId/dismiss_alert')],
302
- [cmd.Name.GET_ALERT_TEXT, get('/session/:sessionId/alert_text')],
303
- [cmd.Name.SET_ALERT_TEXT, post('/session/:sessionId/alert_text')],
304
- [cmd.Name.GET_LOG, post('/session/:sessionId/log')],
305
- [cmd.Name.GET_AVAILABLE_LOG_TYPES, get('/session/:sessionId/log/types')],
306
- [cmd.Name.GET_SESSION_LOGS, post('/logs')],
307
- [cmd.Name.UPLOAD_FILE, post('/session/:sessionId/se/file')],
308
- ])
309
-
310
198
  /** @const {!Map<string, (CommandSpec|CommandTransformer)>} */
311
199
  const W3C_COMMAND_MAP = new Map([
312
- // Server status.
313
- [cmd.Name.GET_SERVER_STATUS, get('/status')],
200
+
314
201
  // Session management.
315
202
  [cmd.Name.NEW_SESSION, post('/session')],
316
203
  [cmd.Name.QUIT, del('/session/:sessionId')],
204
+
205
+ // Server status.
206
+ [cmd.Name.GET_SERVER_STATUS, get('/status')],
207
+
208
+ // timeouts
317
209
  [cmd.Name.GET_TIMEOUT, get('/session/:sessionId/timeouts')],
318
210
  [cmd.Name.SET_TIMEOUT, post('/session/:sessionId/timeouts')],
211
+
319
212
  // Navigation.
320
213
  [cmd.Name.GET_CURRENT_URL, get('/session/:sessionId/url')],
321
214
  [cmd.Name.GET, post('/session/:sessionId/url')],
322
215
  [cmd.Name.GO_BACK, post('/session/:sessionId/back')],
323
216
  [cmd.Name.GO_FORWARD, post('/session/:sessionId/forward')],
324
217
  [cmd.Name.REFRESH, post('/session/:sessionId/refresh')],
218
+
325
219
  // Page inspection.
326
220
  [cmd.Name.GET_PAGE_SOURCE, get('/session/:sessionId/source')],
327
221
  [cmd.Name.GET_TITLE, get('/session/:sessionId/title')],
222
+
328
223
  // Script execution.
329
224
  [cmd.Name.EXECUTE_SCRIPT, post('/session/:sessionId/execute/sync')],
330
225
  [cmd.Name.EXECUTE_ASYNC_SCRIPT, post('/session/:sessionId/execute/async')],
226
+
331
227
  // Frame selection.
332
228
  [cmd.Name.SWITCH_TO_FRAME, post('/session/:sessionId/frame')],
333
229
  [cmd.Name.SWITCH_TO_FRAME_PARENT, post('/session/:sessionId/frame/parent')],
230
+
334
231
  // Window management.
335
232
  [cmd.Name.GET_CURRENT_WINDOW_HANDLE, get('/session/:sessionId/window')],
336
233
  [cmd.Name.CLOSE, del('/session/:sessionId/window')],
@@ -342,9 +239,13 @@ const W3C_COMMAND_MAP = new Map([
342
239
  [cmd.Name.MAXIMIZE_WINDOW, post('/session/:sessionId/window/maximize')],
343
240
  [cmd.Name.MINIMIZE_WINDOW, post('/session/:sessionId/window/minimize')],
344
241
  [cmd.Name.FULLSCREEN_WINDOW, post('/session/:sessionId/window/fullscreen')],
242
+
345
243
  // Actions.
346
244
  [cmd.Name.ACTIONS, post('/session/:sessionId/actions')],
347
245
  [cmd.Name.CLEAR_ACTIONS, del('/session/:sessionId/actions')],
246
+ [cmd.Name.PRINT_PAGE, post('/session/:sessionId/print')],
247
+
248
+
348
249
  // Locating elements.
349
250
  [cmd.Name.GET_ACTIVE_ELEMENT, get('/session/:sessionId/element/active')],
350
251
  [cmd.Name.FIND_ELEMENT, post('/session/:sessionId/element')],
@@ -365,6 +266,13 @@ const W3C_COMMAND_MAP = new Map([
365
266
  ],
366
267
  // Element interaction.
367
268
  [cmd.Name.GET_ELEMENT_TAG_NAME, get('/session/:sessionId/element/:id/name')],
269
+ [cmd.Name.GET_DOM_ATTRIBUTE, get('/session/:sessionId/element/:id/attribute/:name')],
270
+ [
271
+ cmd.Name.GET_ELEMENT_ATTRIBUTE,
272
+ (cmd) => {
273
+ return toExecuteAtomCommand(cmd, Atom.GET_ATTRIBUTE, 'id', 'name')
274
+ },
275
+ ],
368
276
  [
369
277
  cmd.Name.GET_ELEMENT_PROPERTY,
370
278
  get('/session/:sessionId/element/:id/property/:name'),
@@ -391,43 +299,53 @@ const W3C_COMMAND_MAP = new Map([
391
299
  ],
392
300
  [cmd.Name.IS_ELEMENT_ENABLED, get('/session/:sessionId/element/:id/enabled')],
393
301
  [
394
- cmd.Name.GET_ELEMENT_ATTRIBUTE,
395
- (cmd) => {
396
- return toExecuteAtomCommand(cmd, Atom.GET_ATTRIBUTE, 'id', 'name')
397
- },
302
+ cmd.Name.IS_ELEMENT_SELECTED,
303
+ get('/session/:sessionId/element/:id/selected'),
398
304
  ],
305
+
399
306
  [
400
307
  cmd.Name.IS_ELEMENT_DISPLAYED,
401
308
  (cmd) => {
402
309
  return toExecuteAtomCommand(cmd, Atom.IS_DISPLAYED, 'id')
403
310
  },
404
311
  ],
312
+
405
313
  // Cookie management.
406
314
  [cmd.Name.GET_ALL_COOKIES, get('/session/:sessionId/cookie')],
407
315
  [cmd.Name.ADD_COOKIE, post('/session/:sessionId/cookie')],
408
316
  [cmd.Name.DELETE_ALL_COOKIES, del('/session/:sessionId/cookie')],
409
317
  [cmd.Name.GET_COOKIE, get('/session/:sessionId/cookie/:name')],
410
318
  [cmd.Name.DELETE_COOKIE, del('/session/:sessionId/cookie/:name')],
319
+
411
320
  // Alert management.
412
321
  [cmd.Name.ACCEPT_ALERT, post('/session/:sessionId/alert/accept')],
413
322
  [cmd.Name.DISMISS_ALERT, post('/session/:sessionId/alert/dismiss')],
414
323
  [cmd.Name.GET_ALERT_TEXT, get('/session/:sessionId/alert/text')],
415
324
  [cmd.Name.SET_ALERT_TEXT, post('/session/:sessionId/alert/text')],
325
+
416
326
  // Screenshots.
417
327
  [cmd.Name.SCREENSHOT, get('/session/:sessionId/screenshot')],
418
328
  [
419
329
  cmd.Name.TAKE_ELEMENT_SCREENSHOT,
420
330
  get('/session/:sessionId/element/:id/screenshot'),
421
331
  ],
422
- // print page.
423
- [cmd.Name.PRINT_PAGE, post('/session/:sessionId/print')],
332
+
424
333
  // Shadow Root
425
334
  [cmd.Name.GET_SHADOW_ROOT, get('/session/:sessionId/element/:id/shadow')],
426
- [cmd.Name.FIND_ELEMENT_FROM_SHADOWROOT, post('/session/:sessionId/shadow/:id/element')],
427
- [cmd.Name.FIND_ELEMENTS_FROM_SHADOWROOT, post('/session/:sessionId/shadow/:id/elements')],
335
+ [
336
+ cmd.Name.FIND_ELEMENT_FROM_SHADOWROOT,
337
+ post('/session/:sessionId/shadow/:id/element'),
338
+ ],
339
+ [
340
+ cmd.Name.FIND_ELEMENTS_FROM_SHADOWROOT,
341
+ post('/session/:sessionId/shadow/:id/elements'),
342
+ ],
428
343
  // Log extensions.
429
344
  [cmd.Name.GET_LOG, post('/session/:sessionId/se/log')],
430
345
  [cmd.Name.GET_AVAILABLE_LOG_TYPES, get('/session/:sessionId/se/log/types')],
346
+
347
+ // Server Extensions
348
+ [cmd.Name.UPLOAD_FILE, post('/session/:sessionId/se/file')],
431
349
  ])
432
350
 
433
351
  /**
@@ -451,31 +369,23 @@ class Client {
451
369
  /**
452
370
  * @param {Map<string, CommandSpec>} customCommands
453
371
  * A map of custom command definitions.
454
- * @param {boolean} w3c Whether to use W3C command mappings.
455
372
  * @param {!cmd.Command} command The command to resolve.
456
373
  * @return {!Request} A promise that will resolve with the
457
374
  * command to execute.
458
375
  */
459
- function buildRequest(customCommands, w3c, command) {
376
+ function buildRequest(customCommands, command) {
460
377
  LOG.finest(() => `Translating command: ${command.getName()}`)
461
378
  let spec = customCommands && customCommands.get(command.getName())
462
379
  if (spec) {
463
380
  return toHttpRequest(spec)
464
381
  }
465
382
 
466
- if (w3c) {
467
- spec = W3C_COMMAND_MAP.get(command.getName())
468
- if (typeof spec === 'function') {
469
- LOG.finest(() => `Transforming command for W3C: ${command.getName()}`)
470
- let newCommand = spec(command)
471
- return buildRequest(customCommands, w3c, newCommand)
472
- } else if (spec) {
473
- return toHttpRequest(spec)
474
- }
475
- }
476
-
477
- spec = COMMAND_MAP.get(command.getName())
478
- if (spec) {
383
+ spec = W3C_COMMAND_MAP.get(command.getName())
384
+ if (typeof spec === 'function') {
385
+ LOG.finest(() => `Transforming command for W3C: ${command.getName()}`)
386
+ let newCommand = spec(command)
387
+ return buildRequest(customCommands, newCommand)
388
+ } else if (spec) {
479
389
  return toHttpRequest(spec)
480
390
  }
481
391
  throw new error.UnknownCommandError(
@@ -519,15 +429,6 @@ class Executor {
519
429
  constructor(client) {
520
430
  CLIENTS.set(this, client)
521
431
 
522
- /**
523
- * Whether this executor should use the W3C wire protocol. The executor
524
- * will automatically switch if the remote end sends a compliant response
525
- * to a new session command, however, this property may be directly set to
526
- * `true` to force the executor into W3C mode.
527
- * @type {boolean}
528
- */
529
- this.w3c = false
530
-
531
432
  /** @private {Map<string, CommandSpec>} */
532
433
  this.customCommands_ = null
533
434
 
@@ -557,7 +458,7 @@ class Executor {
557
458
 
558
459
  /** @override */
559
460
  async execute(command) {
560
- let request = buildRequest(this.customCommands_, this.w3c, command)
461
+ let request = buildRequest(this.customCommands_, command)
561
462
  this.log_.finer(() => `>>> ${request.method} ${request.path}`)
562
463
 
563
464
  let client = CLIENTS.get(this)
@@ -588,7 +489,7 @@ class Executor {
588
489
  // No implementations use the `capabilities` key yet...
589
490
  let capabilities = value.capabilities || value.value
590
491
  return new Session(
591
- /** @type {{sessionId: string}} */(value).sessionId,
492
+ /** @type {{sessionId: string}} */ (value).sessionId,
592
493
  capabilities
593
494
  )
594
495
  }
@@ -658,7 +559,7 @@ function parseHttpResponse(command, httpResponse) {
658
559
 
659
560
  // 404 represents an unknown command; anything else > 399 is a generic unknown
660
561
  // error.
661
- if (httpResponse.status == 404) {
562
+ if (httpResponse.status === 404) {
662
563
  throw new error.UnsupportedOperationError(command.getName() + ': ' + value)
663
564
  } else if (httpResponse.status >= 400) {
664
565
  throw new error.WebDriverError(value)
@@ -702,8 +603,11 @@ function buildPath(path, parameters) {
702
603
 
703
604
  // PUBLIC API
704
605
 
705
- exports.Executor = Executor
706
- exports.Client = Client
707
- exports.Request = Request
708
- exports.Response = Response
709
- exports.buildPath = buildPath // Exported for testing.
606
+ module.exports = {
607
+ Executor: Executor,
608
+ Client: Client,
609
+ Request: Request,
610
+ Response: Response,
611
+ // Exported for testing.
612
+ buildPath: buildPath
613
+ }
package/lib/input.js CHANGED
@@ -250,7 +250,7 @@ function checkCodePoint(key) {
250
250
  }
251
251
 
252
252
  key = key.normalize()
253
- if (Array.from(key).length != 1) {
253
+ if (Array.from(key).length !== 1) {
254
254
  throw new InvalidArgumentError(
255
255
  `key input is not a single code point: ${key}`
256
256
  )
package/lib/promise.js CHANGED
@@ -142,14 +142,12 @@ async function map(array, fn, self = undefined) {
142
142
  }
143
143
 
144
144
  const arr = /** @type {!Array} */ (v)
145
- const n = arr.length
146
- const values = new Array(n)
145
+ const values = []
147
146
 
148
- for (let i = 0; i < n; i++) {
149
- if (i in arr) {
150
- values[i] = await Promise.resolve(fn.call(self, arr[i], i, arr))
151
- }
147
+ for (const [index, item] of arr.entries()) {
148
+ values.push(await Promise.resolve(fn.call(self, item, index, arr)))
152
149
  }
150
+
153
151
  return values
154
152
  }
155
153
 
@@ -181,19 +179,17 @@ async function filter(array, fn, self = undefined) {
181
179
  }
182
180
 
183
181
  const arr = /** @type {!Array} */ (v)
184
- const n = arr.length
185
182
  const values = []
186
- let valuesLength = 0
187
183
 
188
- for (let i = 0; i < n; i++) {
189
- if (i in arr) {
190
- const value = arr[i]
191
- const include = await fn.call(self, value, i, arr)
192
- if (include) {
193
- values[valuesLength++] = value
194
- }
184
+ for (const [index, item] of arr.entries()) {
185
+ const isConditionTrue = await Promise.resolve(
186
+ fn.call(self, item, index, arr)
187
+ )
188
+ if (isConditionTrue) {
189
+ values.push(item)
195
190
  }
196
191
  }
192
+
197
193
  return values
198
194
  }
199
195
 
@@ -266,8 +262,7 @@ async function fullyResolveKeys(obj) {
266
262
  ) {
267
263
  return
268
264
  }
269
- let resolvedValue = await fullyResolved(partialValue)
270
- obj[key] = resolvedValue
265
+ obj[key] = await fullyResolved(partialValue)
271
266
  })
272
267
  return obj
273
268
  }
package/lib/proxy.js CHANGED
@@ -130,7 +130,7 @@ ManualConfig.prototype.socksVersion
130
130
  * Configures WebDriver to bypass all browser proxies.
131
131
  * @return {!Config} A new proxy configuration object.
132
132
  */
133
- exports.direct = function () {
133
+ function direct() {
134
134
  return { proxyType: Type.DIRECT }
135
135
  }
136
136
 
@@ -155,7 +155,7 @@ exports.direct = function () {
155
155
  * configuration options.
156
156
  * @return {!ManualConfig} A new proxy configuration object.
157
157
  */
158
- exports.manual = function ({ ftp, http, https, bypass }) {
158
+ function manual({ ftp, http, https, bypass }) {
159
159
  return {
160
160
  proxyType: Type.MANUAL,
161
161
  ftpProxy: ftp,
@@ -185,7 +185,7 @@ exports.manual = function ({ ftp, http, https, bypass }) {
185
185
  * @return {!ManualConfig} A new proxy configuration object.
186
186
  * @see https://en.wikipedia.org/wiki/SOCKS
187
187
  */
188
- exports.socks = function (socksProxy, socksVersion = undefined) {
188
+ function socks(socksProxy, socksVersion = undefined) {
189
189
  return /** @type {!Config} */ ({
190
190
  proxyType: Type.MANUAL,
191
191
  socksProxy,
@@ -199,7 +199,7 @@ exports.socks = function (socksProxy, socksVersion = undefined) {
199
199
  * @param {string} proxyAutoconfigUrl URL for the PAC proxy to use.
200
200
  * @return {!PacConfig} A new proxy configuration object.
201
201
  */
202
- exports.pac = function (proxyAutoconfigUrl) {
202
+ function pac(proxyAutoconfigUrl) {
203
203
  return { proxyType: Type.PAC, proxyAutoconfigUrl }
204
204
  }
205
205
 
@@ -207,6 +207,16 @@ exports.pac = function (proxyAutoconfigUrl) {
207
207
  * Configures WebDriver to use the current system's proxy.
208
208
  * @return {!Config} A new proxy configuration object.
209
209
  */
210
- exports.system = function () {
210
+ function system() {
211
211
  return { proxyType: Type.SYSTEM }
212
212
  }
213
+
214
+ // PUBLIC API
215
+
216
+ module.exports = {
217
+ system,
218
+ pac,
219
+ socks,
220
+ manual,
221
+ direct,
222
+ }
package/lib/session.js CHANGED
@@ -74,4 +74,4 @@ class Session {
74
74
 
75
75
  // PUBLIC API
76
76
 
77
- module.exports = { Session: Session }
77
+ module.exports = { Session }
package/lib/until.js CHANGED
@@ -137,14 +137,13 @@ exports.alertIsPresent = function alertIsPresent() {
137
137
  * @return {!Condition<boolean>} The new condition.
138
138
  */
139
139
  exports.titleIs = function titleIs(title) {
140
- return new Condition(
141
- 'for title to be ' + JSON.stringify(title),
142
- function (driver) {
143
- return driver.getTitle().then(function (t) {
144
- return t === title
145
- })
146
- }
147
- )
140
+ return new Condition('for title to be ' + JSON.stringify(title), function (
141
+ driver
142
+ ) {
143
+ return driver.getTitle().then(function (t) {
144
+ return t === title
145
+ })
146
+ })
148
147
  }
149
148
 
150
149
  /**
@@ -189,14 +188,13 @@ exports.titleMatches = function titleMatches(regex) {
189
188
  * @return {!Condition<boolean>} The new condition.
190
189
  */
191
190
  exports.urlIs = function urlIs(url) {
192
- return new Condition(
193
- 'for URL to be ' + JSON.stringify(url),
194
- function (driver) {
195
- return driver.getCurrentUrl().then(function (u) {
196
- return u === url
197
- })
198
- }
199
- )
191
+ return new Condition('for URL to be ' + JSON.stringify(url), function (
192
+ driver
193
+ ) {
194
+ return driver.getCurrentUrl().then(function (u) {
195
+ return u === url
196
+ })
197
+ })
200
198
  }
201
199
 
202
200
  /**