webdriverio
Advanced tools
Comparing version 5.0.0-alpha.14 to 5.0.0-beta.0
@@ -13,2 +13,31 @@ 'use strict'; | ||
/** | ||
* | ||
* Sets a [cookie](https://w3c.github.io/webdriver/#cookies) for current page. Make sure you are | ||
* on the page that should receive the cookie. You can't set a cookie for an arbitrary page without | ||
* being on that page. | ||
* | ||
* <example> | ||
:setCookie.js | ||
it('should set a cookie for the page', function () { | ||
browser.url('/') | ||
browser.setCookie({name: 'test', value: '123'}); | ||
var cookies = browser.getCookie(); | ||
console.log(cookies); // outputs: [{ name: 'test', value: '123', domain: 'www.example.com' }] | ||
}); | ||
* </example> | ||
* | ||
* @alias browser.setCookie | ||
* @param {Object} cookie cookie object | ||
* @param {String} cookie.name The name of the cookie | ||
* @param {String} cookie.value The cookie value | ||
* @param {String} cookie.path (Optional) The cookie path | ||
* @param {String} cookie.domain (Optional) The domain the cookie is visible to | ||
* @param {Boolean} cookie.secure (Optional) Whether the cookie is a secure cookie | ||
* @param {Boolean} cookie.httpOnly (Optional) Whether the cookie is an httpOnly cookie | ||
* @param {Number} cookie.expiry (Optional) When the cookie expires, specified in seconds since midnight, January 1, 1970 UTC | ||
* @uses protocol/addCookie | ||
* @type cookie | ||
* | ||
*/ | ||
exports.default = (() => { | ||
@@ -15,0 +44,0 @@ var _ref = _asyncToGenerator(function* (cookieObjs) { |
@@ -35,3 +35,3 @@ "use strict"; | ||
* @alias browser.getElementSize | ||
* @param {String*} prop size to receive [optional] ("width" or "height") | ||
* @param {String} prop size to receive [optional] ("width" or "height") | ||
* @return {Object|Number} requested element size (`{ width: <Number>, height: <Number> }`) or actual width/height as number if prop param is given | ||
@@ -38,0 +38,0 @@ * @uses protocol/elements, protocol/getElementRect |
@@ -13,3 +13,3 @@ "use strict"; | ||
* | ||
* Return true if the selected DOM-element is visible. | ||
* Return true if the selected DOM-element is displayed. | ||
* | ||
@@ -22,28 +22,29 @@ * <example> | ||
<div id="zeroOpacity" style="opacity: 0"></div> | ||
:isVisible.js | ||
it('should detect if an element is visible', function () { | ||
:isDisplayed.js | ||
it('should detect if an element is displayed', function () { | ||
let elem = $('#notDisplayed'); | ||
let isVisible = elem.isVisible(); | ||
console.log(isVisible); // outputs: false | ||
let isDisplayed = elem.isDisplayed(); | ||
console.log(isDisplayed); // outputs: false | ||
elem = $('#notVisible'); | ||
isVisible = elem.isVisible(); | ||
console.log(isVisible); // outputs: false | ||
isDisplayed = elem.isDisplayed(); | ||
console.log(isDisplayed); // outputs: false | ||
elem = $('#notExisting'); | ||
isVisible = elem.isVisible(); | ||
console.log(isVisible); // outputs: false | ||
isDisplayed = elem.isDisplayed(); | ||
console.log(isDisplayed); // outputs: false | ||
elem = $('#notInViewport'); | ||
isVisible = elem.isVisible(); | ||
console.log(isVisible); // outputs: true | ||
isDisplayed = elem.isDisplayed(); | ||
console.log(isDisplayed); // outputs: true | ||
elem = $('#zeroOpacity'); | ||
isVisible = elem.isVisible(); | ||
console.log(isVisible); // outputs: true | ||
isDisplayed = elem.isDisplayed(); | ||
console.log(isDisplayed); // outputs: true | ||
}); | ||
* </example> | ||
* | ||
* @alias browser.isVisible | ||
* @return {Boolean} true if element(s)* [is|are] visible | ||
* @alias browser.isDisplayed | ||
* @return {Boolean} true if element(s)* [is|are] displayed | ||
* @uses protocol/elements, protocol/elementIdDisplayed | ||
@@ -50,0 +51,0 @@ * @type state |
@@ -54,3 +54,3 @@ 'use strict'; | ||
const formatted = /"/.test(text) ? 'concat("' + text.trim().split('"').join('", \'"\', "') + '")' : `"${text.trim()}"`; | ||
const normalized = `[normalize-space(translate(., ' ', '')) = ${formatted}]`; | ||
const normalized = `[normalize-space(text()) = ${formatted}]`; | ||
const optionElement = yield this.findElementFromElement(this.elementId, 'xpath', `./option${normalized}|./optgroup/option${normalized}`); | ||
@@ -57,0 +57,0 @@ |
@@ -54,2 +54,12 @@ 'use strict'; | ||
const prototype = (0, _utils.getPrototype)('browser'); | ||
/** | ||
* apply mobile check flags to browser scope | ||
*/ | ||
const mobileDetection = (0, _utils.mobileDetector)(params.capabilities); | ||
Object.assign(prototype, Object.keys(mobileDetection).reduce((proto, flag) => { | ||
proto[flag] = { value: mobileDetection[flag] }; | ||
return proto; | ||
}, {})); | ||
return _webdriver2.default.newSession(params, modifier, prototype, _wdioConfig.wrapCommand); | ||
@@ -56,0 +66,0 @@ }; |
@@ -40,3 +40,3 @@ 'use strict'; | ||
*/ | ||
if (!this.elementId && !commandName.match(/(wait(Until|ForVisible|ForExist)|isExisting)/)) { | ||
if (!this.elementId && !commandName.match(/(wait(Until|ForDisplayed|ForExist|ForEnabled)|isExisting)/)) { | ||
log.debug(`command ${commandName} was called on an element ("${this.selector}") ` + `that wasn't found, waiting for it...`); | ||
@@ -43,0 +43,0 @@ |
@@ -32,2 +32,6 @@ 'use strict'; | ||
var _graphemeSplitter = require('grapheme-splitter'); | ||
var _graphemeSplitter2 = _interopRequireDefault(_graphemeSplitter); | ||
var _constants = require('./constants'); | ||
@@ -284,3 +288,3 @@ | ||
if (typeof val === 'string') { | ||
ret.push(...val.split('')); | ||
ret.push(...checkUnicode(val)); | ||
} else if (typeof val === 'number') { | ||
@@ -390,3 +394,3 @@ const entry = `${val}`.split(''); | ||
function checkUnicode(value) { | ||
return _constants.UNICODE_CHARACTERS.hasOwnProperty(value) ? [_constants.UNICODE_CHARACTERS[value]] : value.split(''); | ||
return _constants.UNICODE_CHARACTERS.hasOwnProperty(value) ? [_constants.UNICODE_CHARACTERS[value]] : new _graphemeSplitter2.default().splitGraphemes(value); | ||
} |
{ | ||
"name": "webdriverio", | ||
"description": "Next-gen WebDriver test automation framework for Node.js", | ||
"version": "5.0.0-alpha.14", | ||
"version": "5.0.0-beta.0", | ||
"homepage": "http://webdriver.io", | ||
@@ -57,8 +57,9 @@ "author": "Christian Bromann <christian@saucelabs.com>", | ||
"css-value": "^0.0.1", | ||
"grapheme-splitter": "^1.0.2", | ||
"lodash.zip": "^4.2.0", | ||
"rgb2hex": "^0.1.0", | ||
"wdio-config": "^5.0.0-alpha.14", | ||
"wdio-logger": "^5.0.0-alpha.14", | ||
"webdriver": "^5.0.0-alpha.14" | ||
"wdio-config": "^5.0.0-beta.0", | ||
"wdio-logger": "^5.0.0-beta.0", | ||
"webdriver": "^5.0.0-beta.0" | ||
} | ||
} |
170177
61
3750
7
+ Addedgrapheme-splitter@^1.0.2
+ Added@types/node@22.13.4(transitive)
+ Addedgrapheme-splitter@1.0.4(transitive)
- Removed@types/node@22.13.1(transitive)
Updatedwdio-config@^5.0.0-beta.0
Updatedwdio-logger@^5.0.0-beta.0
Updatedwebdriver@^5.0.0-beta.0