From 526fa26002c8311bdf85abf40c0c47a23645798b Mon Sep 17 00:00:00 2001 From: Ayush Vishwakarma <127919475+Ayush-Vish@users.noreply.github.com> Date: Thu, 18 Apr 2024 14:11:01 +0530 Subject: [PATCH] Add `.tagname()` as alias for `.getTagName()`. (#4176) Co-authored-by: Priyansh Garg --- lib/api/web-element/scoped-element.js | 1 + .../commands/web-element/testGetTagName.js | 25 +++++++++++++++++++ types/tests/webElement.test-d.ts | 1 + types/web-element.d.ts | 1 + 4 files changed, 28 insertions(+) diff --git a/lib/api/web-element/scoped-element.js b/lib/api/web-element/scoped-element.js index 3f691a0611..539e012765 100644 --- a/lib/api/web-element/scoped-element.js +++ b/lib/api/web-element/scoped-element.js @@ -25,6 +25,7 @@ class ScopedWebElement { 'getRect': ['getSize', 'getLocation', 'rect'], 'getProperty': ['property', 'prop'], 'getText': ['text'], + 'getTagName': ['tagName'], 'getAccessibleName': ['accessibleName'], 'getCssProperty': ['css'], 'getAriaRole': ['ariaRole'], diff --git a/test/src/api/commands/web-element/testGetTagName.js b/test/src/api/commands/web-element/testGetTagName.js index a1b0f64efe..2c7f331830 100644 --- a/test/src/api/commands/web-element/testGetTagName.js +++ b/test/src/api/commands/web-element/testGetTagName.js @@ -38,6 +38,30 @@ describe('element().getTagName() command', function () { assert.strictEqual(resultValue, 'div'); }); + it('test .element().tagName() alias', async function() { + MockServer.addMock({ + url: '/session/13521-10219-202/element/0/name', + method: 'GET', + response: JSON.stringify({ + value: 'div' + }) + }, true); + + const resultPromise = this.client.api.element('#signupSection').tagName(); + 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, 'div'); + + const resultValue = await resultPromise.value; + assert.strictEqual(resultValue, 'div'); + }); + it('test .element().find().getTagName()', async function() { MockServer.addMock({ url: '/session/13521-10219-202/element/1/name', @@ -110,4 +134,5 @@ describe('element().getTagName() command', function () { assert.strictEqual(await resultPromise.assert.not.contains('dx'), 'div'); assert.strictEqual(await resultPromise.assert.not.matches(/di[a-z]{2}x/), 'div'); }); + }); diff --git a/types/tests/webElement.test-d.ts b/types/tests/webElement.test-d.ts index b9c2b45c42..17b58b6e0c 100644 --- a/types/tests/webElement.test-d.ts +++ b/types/tests/webElement.test-d.ts @@ -144,6 +144,7 @@ describe('new element() api', function () { expectType>(elem.getId()); expectType>(elem.getTagName()); + expectType>(elem.tagName()); expectType>(elem.getText()); expectType>(elem.text()); diff --git a/types/web-element.d.ts b/types/web-element.d.ts index b33e07a0ad..f2e6de6329 100644 --- a/types/web-element.d.ts +++ b/types/web-element.d.ts @@ -148,6 +148,7 @@ export interface ScopedElement extends Element, PromiseLike { getLocation(): ElementValue; getTagName(): ElementValue; + tagName(): ElementValue; getText(): ElementValue; text(): ElementValue;