import { expectAssignable, expectError, expectType } from "tsd"; import { ElementGlobal, NightwatchAPI, NightwatchCallbackResult, NightwatchSizeAndPosition } from ".."; import { WebElement } from "selenium-webdriver"; describe('global element() api', function () { it('test element()', async function() { // string as locator const elem = element('selector'); expectType(elem); expectType(await elem.getWebElement()); // WebElement as selector expectType(element(await elem.getWebElement())); // By as selector expectType(element(by.css('selector'))); // ElementProperties as selector expectType(element({selector: 'selector', index: 4})); // with options expectType(element('selector', {isComponent: true, type: 'vue'})); }); it('test element() methods and properties', async function() { // string as locator const elem = element('selector'); expectType(elem); // .getId() expectAssignable(elem.getId(function (result) { expectType(this); expectType>(result); })); expectType(await elem.getId()); // .findElement() expectAssignable(elem.findElement()); expectType(await elem.findElement()); expectAssignable(elem.findElement('child-selector', function (result) { expectType(this); expectType>(result); })); expectType(await elem.findElement('child-selector')); // .find() expectAssignable(elem.find()); expectType(await elem.find()); expectAssignable(elem.find('child-selector', function (result) { expectType(this); expectType>(result); })); expectType(await elem.find('child-selector')); elem.find({using: 'css selector', value: 'child-selector'}); expectError(elem.find({value: 'child-selector'})); expectError(elem.find({using: 'css selector', value: 'child-selector', abortOnFailure: true})); const elemProp = {locateStrategy: 'css selector', selector: 'child-selector', abortOnFailure: true}; elem.find(elemProp); expectError(elem.find({locateStrategy: 'css selector', selector: 'child-selector', abortOnFailure: true})); expectError(elem.find({locateStrategy: 'css selector', value: 'child-selector'})); // .get() expectAssignable(elem.get()); expectType(await elem.get()); expectType(await elem.element()); expectAssignable(elem.get('child-selector', function (result) { expectType(this); expectType>(result); })); expectType(await elem.get('child-selector')); expectType(await elem.element('child-selector')); // .findElements() expectAssignable(elem.findElements('child-selector', function (result) { expectType(this); expectType>(result); })); expectType(await elem.findElements('child-selector')); // .findAll() expectAssignable(elem.findAll('child-selector', function (result) { expectType(this); expectType>(result); })); expectType(await elem.findAll('child-selector')); // .clear() expectAssignable(elem.clear(function (result) { expectType(this); expectType>(result); })); expectType(await elem.clear()) // .click() expectAssignable(elem.click(function (result) { expectType(this); expectType>(result); })); expectType(await elem.click()); // .getAccessibleName() expectAssignable(elem.getAccessibleName(function (result) { expectType(this); expectType>(result); })); expectType(await elem.getAccessibleName()); expectType(await elem.accessibleName()); // .getAriaRole() expectAssignable(elem.getAriaRole(function (result) { expectType(this); expectType>(result); })); expectType(await elem.getAriaRole()); expectType(await elem.ariaRole()); // .getAttribute() expectAssignable(elem.getAttribute('attribute-name', function (result) { expectType(this); expectType>(result); })); expectType(await elem.getAttribute('attribute-name')); expectType(await elem.attr('attribute-name')); expectType(await elem.attribute('attribute-name')); // .getCssValue() expectAssignable(elem.getCssValue('prop-name', function (result) { expectType(this); expectType>(result); })); expectType(await elem.getCssValue('prop-name')); expectType(await elem.css('prop-name')); // .getProperty() expectAssignable(elem.getProperty('prop-name', function (result) { expectType(this); expectType>(result); })); expectType(await elem.getProperty('prop-name')); expectType(await elem.property('prop-name')); expectType(await elem.prop('prop-name')); // .getRect() expectAssignable(elem.getRect(function (result) { expectType(this); expectType>(result); })); expectType(await elem.getRect()); expectType(await elem.rect()); // .getTagName() expectAssignable(elem.getTagName(function (result) { expectType(this); expectType>(result); })); expectType(await elem.getTagName()); expectType(await elem.tagName()); // .getText() expectAssignable(elem.getText(function (result) { expectType(this); expectType>(result); })); expectType(await elem.getText()); expectType(await elem.text()); // .sendKeys() expectAssignable(elem.sendKeys(1, 'something', browser.Keys.SPACE, Promise.resolve(2))); expectType(await elem.sendKeys()); // .submit() expectAssignable(elem.submit(function (result) { expectType(this); expectType>(result); })); expectType(await elem.submit()); // .takeScreenshot() expectAssignable(elem.takeScreenshot(function (result) { expectType(this); expectType>(result); })); expectType(await elem.takeScreenshot()); expectType(await elem.screenshot()); // .isDisplayed() expectAssignable(elem.isDisplayed(function (result) { expectType(this); expectType>(result); })); expectType(await elem.isDisplayed()); // .isEnabled() expectAssignable(elem.isEnabled(function (result) { expectType(this); expectType>(result); })); expectType(await elem.isEnabled()); // .isSelected() expectAssignable(elem.isSelected(function (result) { expectType(this); expectType>(result); })); expectType(await elem.isSelected()); // .getWebElement() expectAssignable(elem.getWebElement()); expectType(await elem.getWebElement()); // .isComponent expectType(elem.isComponent!); }); });