메인 컨텐츠로 건너뛰기

addCommand

The browser method addCommand helps you to write your own set of commands.

정보

You can find more information on adding custom commands in the custom command guide.

Usage
browser.addCommand(name, callback, { attachToElement, disableElementImplicitWait })
Parameters
NameTypeDetails
namestringname of the custom command
callbackFunctionfunction to be called
options
optional
Boolean, ObjectDEPRECATED when Boolean (elementScope). Options object with the following properties:
options.attachToElement
optional
Booleanextend the Element object instead of the Browser object
options.disableElementImplicitWait
optional
Booleandisable implicit wait for element commands
Example
execute.js
// Basic usage with browser scope
await browser.addCommand('getUrlAndTitle', async function (customParam) {
// `this` refers to the `browser` scope
return {
url: await this.getUrl(),
title: await this.getTitle(),
customParam: customParam
}
})

// Element scope using options object (RECOMMENDED)
await browser.addCommand('waitAndClick', async function () {
// `this` refers to the `element` scope
await this.waitForClickable()
await this.click()
}, { attachToElement: true })

// Advanced usage with options
await browser.addCommand('fastClick', async function () {
// `this` refers to the `element` scope
await this.click()
}, {
attachToElement: true,
disableElementImplicitWait: true // Skip implicit wait for faster execution
})

//usage
it('should use my add command', async () => {
await browser.url('https://webdriver.io')
const result = await browser.getUrlAndTitle('foobar')

assert.strictEqual(result.url, 'https://webdriver.io')
assert.strictEqual(result.title, 'WebdriverIO · Next-gen browser and mobile automation test framework for Node.js | WebdriverIO')
assert.strictEqual(result.customParam, 'foobar')

// Using element commands
const element = await $('button')
await element.waitAndClick()
await element.fastClick()
})

Welcome! How can I help?

WebdriverIO AI Copilot