From 5e5dc3e3920125b37fcd5348228739f5d191d98e Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Fri, 23 Feb 2024 04:17:09 +0000 Subject: [PATCH 01/13] Added missing isEnabled command in new Element API --- lib/api/web-element/commands/isEnabled.js | 29 +++++++++++++++++++++++ types/tests/webElement.test-d.ts | 1 + types/web-element.d.ts | 2 ++ 3 files changed, 32 insertions(+) create mode 100644 lib/api/web-element/commands/isEnabled.js diff --git a/lib/api/web-element/commands/isEnabled.js b/lib/api/web-element/commands/isEnabled.js new file mode 100644 index 0000000000..4ad054b7ba --- /dev/null +++ b/lib/api/web-element/commands/isEnabled.js @@ -0,0 +1,29 @@ +/** + * Returns the visible text for the element. + * + * For more info on working with DOM elements in Nightwatch, refer to the Finding & interacting with DOM Elements guide page. + * + * @example + * export default { + * demoTest(browser: NightwatchAPI): void { + * const result = browser.element('#main ul li a.first').isEnabled(); + * .assert.valueEquals('custom text'); + * }, + * + * async demoTestAsync(browser: NightwatchAPI): Promise { + * const result = await browser.element('#main ul li a.first').isEnabled(); + * console.log('element text:', result); + * } + * } + * + * @since 3.0.0 + * @method isEnabled + * @memberof ScopedWebElement + * @instance + * @syntax browser.element(selector).isEnabled() + * @see https://www.w3.org/TR/webdriver#dfn-get-element-text + * @returns {ScopedValue} + */ +module.exports.command = function() { + return this.runQueuedCommandScoped('isElementEnabled'); +}; diff --git a/types/tests/webElement.test-d.ts b/types/tests/webElement.test-d.ts index a85627953f..145351077c 100644 --- a/types/tests/webElement.test-d.ts +++ b/types/tests/webElement.test-d.ts @@ -129,6 +129,7 @@ describe('new element() api', function () { expectType(elem.getLastElementChild()); expectType(elem.getNextElementSibling()); expectType(elem.getPreviousElementSibling()); + expectType(elem.isEnabled()); expectType & PromiseLike>(elem.getShadowRoot()); expectType(await elem.getShadowRoot()); diff --git a/types/web-element.d.ts b/types/web-element.d.ts index 05d68b02f2..757b540fe4 100644 --- a/types/web-element.d.ts +++ b/types/web-element.d.ts @@ -188,6 +188,8 @@ export interface ScopedElement extends Element, PromiseLike { rightClick(): Promise; waitUntil(signalOrOptions: WaitUntilActions | WaitUntilOptions, waitOptions?: WaitUntilOptions): Promise; + + isEnabled(): ScopedElement; } type WaitUntilOptions = { From 90e99ed9c5f568a0b9bff8674db3e31f8f269228 Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Fri, 23 Feb 2024 04:53:10 +0000 Subject: [PATCH 02/13] Added return type element vaue as string or null --- types/tests/webElement.test-d.ts | 2 +- types/web-element.d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/types/tests/webElement.test-d.ts b/types/tests/webElement.test-d.ts index 145351077c..6ec094cc80 100644 --- a/types/tests/webElement.test-d.ts +++ b/types/tests/webElement.test-d.ts @@ -129,7 +129,6 @@ describe('new element() api', function () { expectType(elem.getLastElementChild()); expectType(elem.getNextElementSibling()); expectType(elem.getPreviousElementSibling()); - expectType(elem.isEnabled()); expectType & PromiseLike>(elem.getShadowRoot()); expectType(await elem.getShadowRoot()); @@ -141,6 +140,7 @@ describe('new element() api', function () { expectType>(elem.getProperty('property-name')); expectType>(elem.getAttribute('attrib-name')); expectType>(elem.getValue()); + expectType>(elem.isEnabled()); expectType>(elem.getRect()); expectType>(elem.getSize()); diff --git a/types/web-element.d.ts b/types/web-element.d.ts index 757b540fe4..4fce7046d3 100644 --- a/types/web-element.d.ts +++ b/types/web-element.d.ts @@ -189,7 +189,7 @@ export interface ScopedElement extends Element, PromiseLike { waitUntil(signalOrOptions: WaitUntilActions | WaitUntilOptions, waitOptions?: WaitUntilOptions): Promise; - isEnabled(): ScopedElement; + isEnabled(): ElementValue; } type WaitUntilOptions = { From 516b115cfa6b3a6058872f1ee75fd8675f08489f Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Fri, 23 Feb 2024 07:32:21 +0000 Subject: [PATCH 03/13] Added test for isEnabled command --- .../api/commands/web-element/testIsEnabled.js | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 test/src/api/commands/web-element/testIsEnabled.js diff --git a/test/src/api/commands/web-element/testIsEnabled.js b/test/src/api/commands/web-element/testIsEnabled.js new file mode 100644 index 0000000000..a33c24dc78 --- /dev/null +++ b/test/src/api/commands/web-element/testIsEnabled.js @@ -0,0 +1,113 @@ +const assert = require('assert'); +const {WebElement} = require('selenium-webdriver'); +const MockServer = require('../../../../lib/mockserver.js'); +const CommandGlobals = require('../../../../lib/globals/commands-w3c.js'); +const common = require('../../../../common.js'); +const Element = common.require('element/index.js'); + +describe('element().isEnabled() command', function () { + before(function (done) { + CommandGlobals.beforeEach.call(this, done); + }); + + after(function (done) { + CommandGlobals.afterEach.call(this, done); + }); + + it('test .element().isEnabled()', async function() { + MockServer.addMock({ + url: '/session/13521-10219-202/element/0/text', + method: 'GET', + response: JSON.stringify({ + value: 'Signup' + }) + }, true); + + const resultPromise = this.client.api.element('#signupSection').isEnabled(); + assert.strictEqual(resultPromise instanceof Element, false); + assert.strictEqual(typeof resultPromise.find, 'undefined'); + + assert.strictEqual(resultPromise instanceof Promise, false); + assert.strictEqual(typeof resultPromise.then, 'function'); + + const result = await resultPromise; + assert.strictEqual(result instanceof WebElement, false); + assert.strictEqual(result, 'Signup'); + + const resultValue = await resultPromise.value; + assert.strictEqual(resultValue, 'Signup'); + }); + + it('test .element().find().isEnabled()', async function() { + MockServer.addMock({ + url: '/session/13521-10219-202/element/1/text', + method: 'GET', + response: JSON.stringify({ + value: 'Help' + }) + }, true); + + const resultPromise = this.client.api.element('#signupSection').find('#helpBtn').isEnabled(); + assert.strictEqual(resultPromise instanceof Element, false); + assert.strictEqual(typeof resultPromise.find, 'undefined'); + + assert.strictEqual(resultPromise instanceof Promise, false); + assert.strictEqual(typeof resultPromise.then, 'function'); + + const result = await resultPromise; + assert.strictEqual(result instanceof WebElement, false); + assert.strictEqual(result, 'Help'); + + const resultValue = await resultPromise.value; + assert.strictEqual(resultValue, 'Help'); + }); + + it('test .element.find().isEnabled()', async function() { + MockServer.addMock({ + url: '/session/13521-10219-202/element/0/text', + method: 'GET', + response: JSON.stringify({ + value: 'Signup' + }) + }, true); + + const resultPromise = this.client.api.element.find('#signupSection').isEnabled(); + assert.strictEqual(resultPromise instanceof Element, false); + assert.strictEqual(typeof resultPromise.find, 'undefined'); + + assert.strictEqual(resultPromise instanceof Promise, false); + assert.strictEqual(typeof resultPromise.then, 'function'); + + const result = await resultPromise; + assert.strictEqual(result instanceof WebElement, false); + assert.strictEqual(result, 'Signup'); + + const resultValue = await resultPromise.value; + assert.strictEqual(resultValue, 'Signup'); + }); + + it('test .element().isEnabled() assert', async function() { + MockServer.addMock({ + url: '/session/13521-10219-202/element/0/text', + method: 'GET', + response: JSON.stringify({ + value: 'Signup' + }) + }, true); + + const resultPromise = this.client.api.element('#signupSection').isEnabled(); + assert.strictEqual(resultPromise instanceof Element, false); + assert.strictEqual(typeof resultPromise.find, 'undefined'); + + assert.strictEqual(resultPromise instanceof Promise, false); + assert.strictEqual(typeof resultPromise.then, 'function'); + + assert.strictEqual(await resultPromise.assert.equals('Signup'), 'Signup'); + assert.strictEqual(await resultPromise.assert.contains('Sign'), 'Signup'); + assert.strictEqual(await resultPromise.assert.matches(/Si[a-z]{2}up/), 'Signup'); + + assert.strictEqual(await resultPromise.assert.not.equals('Signupx'), 'Signup'); + assert.strictEqual(await resultPromise.assert.not.contains('Signupx'), 'Signup'); + assert.strictEqual(await resultPromise.assert.not.matches(/Si[a-z]{2}upx/), 'Signup'); + }); +}); From 7620de6686c7fbcb28806f72cee542257facfb05 Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Fri, 23 Feb 2024 14:35:31 +0000 Subject: [PATCH 04/13] changed doc file and test file --- lib/api/web-element/commands/isEnabled.js | 10 +++++----- test/src/api/commands/web-element/testIsEnabled.js | 8 ++++---- types/tests/webElement.test-d.ts | 2 +- types/web-element.d.ts | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/api/web-element/commands/isEnabled.js b/lib/api/web-element/commands/isEnabled.js index 4ad054b7ba..3b35bb0177 100644 --- a/lib/api/web-element/commands/isEnabled.js +++ b/lib/api/web-element/commands/isEnabled.js @@ -1,5 +1,5 @@ /** - * Returns the visible text for the element. + * Return success with data enabled. * * For more info on working with DOM elements in Nightwatch, refer to the Finding & interacting with DOM Elements guide page. * @@ -7,12 +7,12 @@ * export default { * demoTest(browser: NightwatchAPI): void { * const result = browser.element('#main ul li a.first').isEnabled(); - * .assert.valueEquals('custom text'); + * browser.assert.equal(result, true) * }, * * async demoTestAsync(browser: NightwatchAPI): Promise { * const result = await browser.element('#main ul li a.first').isEnabled(); - * console.log('element text:', result); + * browser.assert.equal(result, true) * } * } * @@ -21,8 +21,8 @@ * @memberof ScopedWebElement * @instance * @syntax browser.element(selector).isEnabled() - * @see https://www.w3.org/TR/webdriver#dfn-get-element-text - * @returns {ScopedValue} + * @see https://www.w3.org/TR/webdriver/#dfn-is-element-enabled + * @returns {ScopedValue} */ module.exports.command = function() { return this.runQueuedCommandScoped('isElementEnabled'); diff --git a/test/src/api/commands/web-element/testIsEnabled.js b/test/src/api/commands/web-element/testIsEnabled.js index a33c24dc78..4f7cea4bf1 100644 --- a/test/src/api/commands/web-element/testIsEnabled.js +++ b/test/src/api/commands/web-element/testIsEnabled.js @@ -16,7 +16,7 @@ describe('element().isEnabled() command', function () { it('test .element().isEnabled()', async function() { MockServer.addMock({ - url: '/session/13521-10219-202/element/0/text', + url: '/session/13521-10219-202/element/0/enabled', method: 'GET', response: JSON.stringify({ value: 'Signup' @@ -40,7 +40,7 @@ describe('element().isEnabled() command', function () { it('test .element().find().isEnabled()', async function() { MockServer.addMock({ - url: '/session/13521-10219-202/element/1/text', + url: '/session/13521-10219-202/element/1/enabled', method: 'GET', response: JSON.stringify({ value: 'Help' @@ -64,7 +64,7 @@ describe('element().isEnabled() command', function () { it('test .element.find().isEnabled()', async function() { MockServer.addMock({ - url: '/session/13521-10219-202/element/0/text', + url: '/session/13521-10219-202/element/0/enabled', method: 'GET', response: JSON.stringify({ value: 'Signup' @@ -88,7 +88,7 @@ describe('element().isEnabled() command', function () { it('test .element().isEnabled() assert', async function() { MockServer.addMock({ - url: '/session/13521-10219-202/element/0/text', + url: '/session/13521-10219-202/element/0/enabled', method: 'GET', response: JSON.stringify({ value: 'Signup' diff --git a/types/tests/webElement.test-d.ts b/types/tests/webElement.test-d.ts index 6ec094cc80..a4f3fbd02f 100644 --- a/types/tests/webElement.test-d.ts +++ b/types/tests/webElement.test-d.ts @@ -140,7 +140,7 @@ describe('new element() api', function () { expectType>(elem.getProperty('property-name')); expectType>(elem.getAttribute('attrib-name')); expectType>(elem.getValue()); - expectType>(elem.isEnabled()); + expectType>(elem.isEnabled()); expectType>(elem.getRect()); expectType>(elem.getSize()); diff --git a/types/web-element.d.ts b/types/web-element.d.ts index 4fce7046d3..268aca0dd4 100644 --- a/types/web-element.d.ts +++ b/types/web-element.d.ts @@ -189,7 +189,7 @@ export interface ScopedElement extends Element, PromiseLike { waitUntil(signalOrOptions: WaitUntilActions | WaitUntilOptions, waitOptions?: WaitUntilOptions): Promise; - isEnabled(): ElementValue; + isEnabled(): ElementValue; } type WaitUntilOptions = { From 57dd4038e413ee6bf929b9899081a73daa6c3f68 Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Fri, 23 Feb 2024 15:28:24 +0000 Subject: [PATCH 05/13] Added test for enabled command --- .../api/commands/web-element/testIsEnabled.js | 104 +++--------------- 1 file changed, 16 insertions(+), 88 deletions(-) diff --git a/test/src/api/commands/web-element/testIsEnabled.js b/test/src/api/commands/web-element/testIsEnabled.js index 4f7cea4bf1..7193b36e0b 100644 --- a/test/src/api/commands/web-element/testIsEnabled.js +++ b/test/src/api/commands/web-element/testIsEnabled.js @@ -1,113 +1,41 @@ const assert = require('assert'); -const {WebElement} = require('selenium-webdriver'); const MockServer = require('../../../../lib/mockserver.js'); const CommandGlobals = require('../../../../lib/globals/commands-w3c.js'); -const common = require('../../../../common.js'); -const Element = common.require('element/index.js'); -describe('element().isEnabled() command', function () { +describe('element().isEnabled() command', function() { before(function (done) { CommandGlobals.beforeEach.call(this, done); }); - after(function (done) { + after(function(done) { CommandGlobals.afterEach.call(this, done); }); - it('test .element().isEnabled()', async function() { + it('test .element().isEnabled()', function() { MockServer.addMock({ - url: '/session/13521-10219-202/element/0/enabled', + url: '/wd/hub/session/1352110219202/element/0/enabled', method: 'GET', response: JSON.stringify({ - value: 'Signup' + value: true }) - }, true); + }); - const resultPromise = this.client.api.element('#signupSection').isEnabled(); - assert.strictEqual(resultPromise instanceof Element, false); - assert.strictEqual(typeof resultPromise.find, 'undefined'); - - assert.strictEqual(resultPromise instanceof Promise, false); - assert.strictEqual(typeof resultPromise.then, 'function'); - - const result = await resultPromise; - assert.strictEqual(result instanceof WebElement, false); - assert.strictEqual(result, 'Signup'); - - const resultValue = await resultPromise.value; - assert.strictEqual(resultValue, 'Signup'); - }); - - it('test .element().find().isEnabled()', async function() { - MockServer.addMock({ - url: '/session/13521-10219-202/element/1/enabled', - method: 'GET', - response: JSON.stringify({ - value: 'Help' - }) - }, true); - - const resultPromise = this.client.api.element('#signupSection').find('#helpBtn').isEnabled(); - assert.strictEqual(resultPromise instanceof Element, false); - assert.strictEqual(typeof resultPromise.find, 'undefined'); - - assert.strictEqual(resultPromise instanceof Promise, false); - assert.strictEqual(typeof resultPromise.then, 'function'); - - const result = await resultPromise; - assert.strictEqual(result instanceof WebElement, false); - assert.strictEqual(result, 'Help'); - - const resultValue = await resultPromise.value; - assert.strictEqual(resultValue, 'Help'); + this.client.api.element('#weblogin').isSelected(function (result) { + this.assert.equal(result.value, true); + }); }); - it('test .element.find().isEnabled()', async function() { + it('async test .element().isEnabled()', async function() { MockServer.addMock({ - url: '/session/13521-10219-202/element/0/enabled', + url: '/wd/hub/session/1352110219202/element/0/enabled', method: 'GET', response: JSON.stringify({ - value: 'Signup' + value: true }) - }, true); - - const resultPromise = this.client.api.element.find('#signupSection').isEnabled(); - assert.strictEqual(resultPromise instanceof Element, false); - assert.strictEqual(typeof resultPromise.find, 'undefined'); - - assert.strictEqual(resultPromise instanceof Promise, false); - assert.strictEqual(typeof resultPromise.then, 'function'); + }); + const resultPromise = this.client.api.element('#weblogin').isEnabled(); const result = await resultPromise; - assert.strictEqual(result instanceof WebElement, false); - assert.strictEqual(result, 'Signup'); - - const resultValue = await resultPromise.value; - assert.strictEqual(resultValue, 'Signup'); - }); - - it('test .element().isEnabled() assert', async function() { - MockServer.addMock({ - url: '/session/13521-10219-202/element/0/enabled', - method: 'GET', - response: JSON.stringify({ - value: 'Signup' - }) - }, true); - - const resultPromise = this.client.api.element('#signupSection').isEnabled(); - assert.strictEqual(resultPromise instanceof Element, false); - assert.strictEqual(typeof resultPromise.find, 'undefined'); - - assert.strictEqual(resultPromise instanceof Promise, false); - assert.strictEqual(typeof resultPromise.then, 'function'); - - assert.strictEqual(await resultPromise.assert.equals('Signup'), 'Signup'); - assert.strictEqual(await resultPromise.assert.contains('Sign'), 'Signup'); - assert.strictEqual(await resultPromise.assert.matches(/Si[a-z]{2}up/), 'Signup'); - - assert.strictEqual(await resultPromise.assert.not.equals('Signupx'), 'Signup'); - assert.strictEqual(await resultPromise.assert.not.contains('Signupx'), 'Signup'); - assert.strictEqual(await resultPromise.assert.not.matches(/Si[a-z]{2}upx/), 'Signup'); + assert.equal(result, true); }); -}); +}); \ No newline at end of file From 7b12bdb224fd093c92d8e130921e1160b987b20f Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Fri, 23 Feb 2024 16:22:21 +0000 Subject: [PATCH 06/13] Made some changes into test file of enabled command --- test/src/api/commands/web-element/testIsEnabled.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/src/api/commands/web-element/testIsEnabled.js b/test/src/api/commands/web-element/testIsEnabled.js index 7193b36e0b..aadb8f3bfe 100644 --- a/test/src/api/commands/web-element/testIsEnabled.js +++ b/test/src/api/commands/web-element/testIsEnabled.js @@ -20,7 +20,7 @@ describe('element().isEnabled() command', function() { }) }); - this.client.api.element('#weblogin').isSelected(function (result) { + this.client.api.element('#weblogin').isEnabled(function (result) { this.assert.equal(result.value, true); }); }); From 35b9d654b8a60c16980910ea7f087f81e8e29d2f Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Sat, 24 Feb 2024 09:54:10 +0000 Subject: [PATCH 07/13] Added test and tried to execute the enanbled command test --- lib/api/web-element/commands/isEnabled.js | 30 +++++++++++-------- .../api/commands/web-element/testIsEnabled.js | 12 ++++---- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/lib/api/web-element/commands/isEnabled.js b/lib/api/web-element/commands/isEnabled.js index 3b35bb0177..1584d42838 100644 --- a/lib/api/web-element/commands/isEnabled.js +++ b/lib/api/web-element/commands/isEnabled.js @@ -1,29 +1,33 @@ /** - * Return success with data enabled. + * Determines if an element is enabled. * * For more info on working with DOM elements in Nightwatch, refer to the Finding & interacting with DOM Elements guide page. * * @example - * export default { - * demoTest(browser: NightwatchAPI): void { - * const result = browser.element('#main ul li a.first').isEnabled(); - * browser.assert.equal(result, true) - * }, + * describe('isEnabled Demo', function() { * - * async demoTestAsync(browser: NightwatchAPI): Promise { - * const result = await browser.element('#main ul li a.first').isEnabled(); - * browser.assert.equal(result, true) - * } - * } + * it('test isEnabled', function(browser) { + * browser.element('#search') + * .isEnabled() + * .assert.equals(true); + * }); + * + * it('test async isEnabled', async function(browser) { + * const result = await browser.element('#search').isEnabled(); + * browser.assert.equal(result, true) + * }); + * + * after(browser => browser.end()); + * }); * * @since 3.0.0 * @method isEnabled * @memberof ScopedWebElement * @instance * @syntax browser.element(selector).isEnabled() - * @see https://www.w3.org/TR/webdriver/#dfn-is-element-enabled + * @see https://www.w3.org/TR/webdriver/#is-element-enabled * @returns {ScopedValue} */ -module.exports.command = function() { +module.exports.command = function () { return this.runQueuedCommandScoped('isElementEnabled'); }; diff --git a/test/src/api/commands/web-element/testIsEnabled.js b/test/src/api/commands/web-element/testIsEnabled.js index aadb8f3bfe..d0b80e0b08 100644 --- a/test/src/api/commands/web-element/testIsEnabled.js +++ b/test/src/api/commands/web-element/testIsEnabled.js @@ -1,6 +1,6 @@ const assert = require('assert'); const MockServer = require('../../../../lib/mockserver.js'); -const CommandGlobals = require('../../../../lib/globals/commands-w3c.js'); +const CommandGlobals = require('../../../../lib/globals/commands.js'); describe('element().isEnabled() command', function() { before(function (done) { @@ -13,29 +13,29 @@ describe('element().isEnabled() command', function() { it('test .element().isEnabled()', function() { MockServer.addMock({ - url: '/wd/hub/session/1352110219202/element/0/enabled', + url: '/wd/hub/session/1352110219202/element/0/visible', method: 'GET', response: JSON.stringify({ value: true }) }); - this.client.api.element('#weblogin').isEnabled(function (result) { + this.client.api.element('#search').isEnabled(function (result) { this.assert.equal(result.value, true); }); }); it('async test .element().isEnabled()', async function() { MockServer.addMock({ - url: '/wd/hub/session/1352110219202/element/0/enabled', + url: '/wd/hub/session/1352110219202/element/0/visible', method: 'GET', response: JSON.stringify({ value: true }) }); - const resultPromise = this.client.api.element('#weblogin').isEnabled(); + const resultPromise = this.client.api.element('#search').isEnabled(); const result = await resultPromise; - assert.equal(result, true); + assert.equal(result, null); }); }); \ No newline at end of file From 403ed77d57bb1e4b8702a200d1821f65960d0fc9 Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Mon, 26 Feb 2024 05:15:42 +0000 Subject: [PATCH 08/13] Added since 3.5.0 --- lib/api/web-element/commands/isEnabled.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/api/web-element/commands/isEnabled.js b/lib/api/web-element/commands/isEnabled.js index 1584d42838..85ac636f5d 100644 --- a/lib/api/web-element/commands/isEnabled.js +++ b/lib/api/web-element/commands/isEnabled.js @@ -20,7 +20,7 @@ * after(browser => browser.end()); * }); * - * @since 3.0.0 + * @since 3.5.0 * @method isEnabled * @memberof ScopedWebElement * @instance From 9cc6db70b89047f231b09766723e6a5fc4903baf Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Mon, 26 Feb 2024 05:16:45 +0000 Subject: [PATCH 09/13] Added failed test --- test/src/api/commands/web-element/testIsEnabled.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/src/api/commands/web-element/testIsEnabled.js b/test/src/api/commands/web-element/testIsEnabled.js index d0b80e0b08..8035f0659e 100644 --- a/test/src/api/commands/web-element/testIsEnabled.js +++ b/test/src/api/commands/web-element/testIsEnabled.js @@ -36,6 +36,6 @@ describe('element().isEnabled() command', function() { const resultPromise = this.client.api.element('#search').isEnabled(); const result = await resultPromise; - assert.equal(result, null); + assert.equal(result, true); }); }); \ No newline at end of file From 0be5d81925df536613d3d2bcc435ea98920cc115 Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Mon, 26 Feb 2024 05:24:21 +0000 Subject: [PATCH 10/13] Added test froenabled command --- test/src/api/commands/web-element/testIsEnabled.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/src/api/commands/web-element/testIsEnabled.js b/test/src/api/commands/web-element/testIsEnabled.js index 8035f0659e..f4466ac5a5 100644 --- a/test/src/api/commands/web-element/testIsEnabled.js +++ b/test/src/api/commands/web-element/testIsEnabled.js @@ -13,7 +13,7 @@ describe('element().isEnabled() command', function() { it('test .element().isEnabled()', function() { MockServer.addMock({ - url: '/wd/hub/session/1352110219202/element/0/visible', + url: '/wd/hub/session/1352110219202/element/0/enabled', method: 'GET', response: JSON.stringify({ value: true @@ -27,7 +27,7 @@ describe('element().isEnabled() command', function() { it('async test .element().isEnabled()', async function() { MockServer.addMock({ - url: '/wd/hub/session/1352110219202/element/0/visible', + url: '/wd/hub/session/1352110219202/element/0/enabled', method: 'GET', response: JSON.stringify({ value: true From 87b6a6e7e2fdc02d5f594d02670c0a0de2a14706 Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Mon, 26 Feb 2024 13:57:53 +0000 Subject: [PATCH 11/13] Added successfull and failed test of enabled command --- .../api/commands/web-element/testIsEnabled.js | 107 +++++++++++++++--- 1 file changed, 94 insertions(+), 13 deletions(-) diff --git a/test/src/api/commands/web-element/testIsEnabled.js b/test/src/api/commands/web-element/testIsEnabled.js index f4466ac5a5..e499d1dbb2 100644 --- a/test/src/api/commands/web-element/testIsEnabled.js +++ b/test/src/api/commands/web-element/testIsEnabled.js @@ -1,41 +1,122 @@ const assert = require('assert'); +const {WebElement} = require('selenium-webdriver'); const MockServer = require('../../../../lib/mockserver.js'); -const CommandGlobals = require('../../../../lib/globals/commands.js'); +const CommandGlobals = require('../../../../lib/globals/commands-w3c.js'); +const common = require('../../../../common.js'); +const Element = common.require('element/index.js'); describe('element().isEnabled() command', function() { before(function (done) { CommandGlobals.beforeEach.call(this, done); }); - after(function(done) { + after(function (done) { CommandGlobals.afterEach.call(this, done); }); - it('test .element().isEnabled()', function() { + it('test .element().isEnabled() enabled', async function() { MockServer.addMock({ - url: '/wd/hub/session/1352110219202/element/0/enabled', + url: '/session/13521-10219-202/element/0/enabled', method: 'GET', response: JSON.stringify({ value: true }) - }); + }, true); + + const resultPromise = this.client.api.element('#signupSection').isEnabled(); + assert.strictEqual(resultPromise instanceof Element, false); + assert.strictEqual(typeof resultPromise.find, 'undefined'); + + assert.strictEqual(resultPromise instanceof Promise, false); + assert.strictEqual(typeof resultPromise.then, 'function'); + + const result = await resultPromise; + assert.strictEqual(result instanceof WebElement, false); + assert.strictEqual(result, true); - this.client.api.element('#search').isEnabled(function (result) { - this.assert.equal(result.value, true); - }); }); - it('async test .element().isEnabled()', async function() { + it('test .element().isEnabled() not enabled', async function() { MockServer.addMock({ - url: '/wd/hub/session/1352110219202/element/0/enabled', + url: '/session/13521-10219-202/element/0/enabled', + method: 'GET', + response: JSON.stringify({ + value: false + }) + }, true); + + const resultPromise = this.client.api.element('#signupSection').isEnabled(); + assert.strictEqual(resultPromise instanceof Element, false); + assert.strictEqual(typeof resultPromise.find, 'undefined'); + + assert.strictEqual(resultPromise instanceof Promise, false); + assert.strictEqual(typeof resultPromise.then, 'function'); + + const result = await resultPromise; + assert.strictEqual(result instanceof WebElement, false); + assert.strictEqual(result, false); + }); + + it('test .element().find().isEnabled()', async function() { + MockServer.addMock({ + url: '/session/13521-10219-202/element/1/enabled', method: 'GET', response: JSON.stringify({ value: true }) - }); + }, true); + + const resultPromise = this.client.api.element('#signupSection').find('#helpBtn').isEnabled(); + assert.strictEqual(resultPromise instanceof Element, false); + assert.strictEqual(typeof resultPromise.find, 'undefined'); + + assert.strictEqual(resultPromise instanceof Promise, false); + assert.strictEqual(typeof resultPromise.then, 'function'); - const resultPromise = this.client.api.element('#search').isEnabled(); const result = await resultPromise; - assert.equal(result, true); + assert.strictEqual(result instanceof WebElement, false); + assert.strictEqual(result, true); }); + + it('test .element.find().isEnabled() not enabled', async function() { + MockServer.addMock({ + url: '/session/13521-10219-202/element/0/enabled', + method: 'GET', + response: JSON.stringify({ + value: false + }) + }, true); + + const resultPromise = this.client.api.element.find('#signupSection').isEnabled(); + assert.strictEqual(resultPromise instanceof Element, false); + assert.strictEqual(typeof resultPromise.find, 'undefined'); + + assert.strictEqual(resultPromise instanceof Promise, false); + assert.strictEqual(typeof resultPromise.then, 'function'); + + const result = await resultPromise; + assert.strictEqual(result instanceof WebElement, false); + assert.strictEqual(result, false); + }); + + it('test .element().isEnabled() assert', async function() { + MockServer.addMock({ + url: '/session/13521-10219-202/element/0/enabled', + method: 'GET', + response: JSON.stringify({ + value: true + }) + }, true); + + const resultPromise = this.client.api.element('#signupSection').isEnabled(); + assert.strictEqual(resultPromise instanceof Element, false); + assert.strictEqual(typeof resultPromise.find, 'undefined'); + + assert.strictEqual(resultPromise instanceof Promise, false); + assert.strictEqual(typeof resultPromise.then, 'function'); + + assert.strictEqual(await resultPromise.assert.equals(true), true); + assert.strictEqual(await resultPromise.assert.not.equals(false), true); + }); + }); \ No newline at end of file From f6473c849b5eeae681f73a88b54b59cbfd3467af Mon Sep 17 00:00:00 2001 From: Priyansh Garg Date: Tue, 27 Feb 2024 21:16:25 +0530 Subject: [PATCH 12/13] Add newline at the end of test file. --- test/src/api/commands/web-element/testIsEnabled.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/src/api/commands/web-element/testIsEnabled.js b/test/src/api/commands/web-element/testIsEnabled.js index e499d1dbb2..e807742aae 100644 --- a/test/src/api/commands/web-element/testIsEnabled.js +++ b/test/src/api/commands/web-element/testIsEnabled.js @@ -119,4 +119,4 @@ describe('element().isEnabled() command', function() { assert.strictEqual(await resultPromise.assert.not.equals(false), true); }); -}); \ No newline at end of file +}); From 5339d15ef3c37814a8f1e056f31b6afc053e3876 Mon Sep 17 00:00:00 2001 From: Priyansh Garg Date: Tue, 27 Feb 2024 21:16:46 +0530 Subject: [PATCH 13/13] Minor changes in JSDoc example. --- lib/api/web-element/commands/isEnabled.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/api/web-element/commands/isEnabled.js b/lib/api/web-element/commands/isEnabled.js index 85ac636f5d..349029dc66 100644 --- a/lib/api/web-element/commands/isEnabled.js +++ b/lib/api/web-element/commands/isEnabled.js @@ -5,7 +5,6 @@ * * @example * describe('isEnabled Demo', function() { - * * it('test isEnabled', function(browser) { * browser.element('#search') * .isEnabled() @@ -14,10 +13,8 @@ * * it('test async isEnabled', async function(browser) { * const result = await browser.element('#search').isEnabled(); - * browser.assert.equal(result, true) + * browser.assert.equal(result, true); * }); - * - * after(browser => browser.end()); * }); * * @since 3.5.0