Chuyển đến nội dung chính

Gmail Service

wdio-gmail-service is a 3rd party package, for more information please see GitHub | npm

A WebdriverIO plugin to fetch e-mails from Google Mail using Gmail Tester.

Installation​

The easiest way is to keep wdio-gmail-service as a devDependency in your package.json.

{
"devDependencies": {
"wdio-gmail-service": "^2.0.0"
}
}

You can simply do it by:

npm install wdio-gmail-service --save-dev

Usage​

Gmail Authentication​

You'll need to follow the instructions at Gmail Tester to create the credentials.json (the OAuth2 Authentication file) and token.json (the OAuth2 token).

Configuration​

Add the service by adding gmail to the service list, e.g.:

// wdio.conf.js
import path from 'path'

export const config = {
// ...
services: [['gmail', {
credentials: path.join(process.cwd(), './credentials.json'),
token: join(process.cwd(), './token.json'),
intervalSec: 10,
timeoutSec: 60
}]]
// ...
};

Service Options​

credentials​

Absolute path to a credentials JSON file.

Type: string | Credentials

Required: true

token​

Absolute path to a token JSON file.

Type: string | Record<string, unknown>

Required: true

intervalSec​

The interval between Gmail inbox checks.

Type: number

Default: 10

Required: false

timeoutSec​

The maximum time to wait for finding the email for the given filters.

Type: number

Default: 60

Required: false

Writing tests​

In your WebdriverIO test, you can now check if an email was received.

describe('Example', () => {
it('Should check email', () => {
// perform some actions that will send an email to setup gmail account
const emails = await browser.checkInbox({ from: 'AccountSupport@ubi.com', subject: 'Ubisoft Password Change Request' });
expect(emails[0].body.html).toContain('https://account-uplay.ubi.com/en-GB/action/change-password?genomeid=')
})
})

checkInbox parameters​

The command parameters require at least one of from, to, or subject:

from​

Filter on the email address of the receiver.

Type: String

to​

Filter on the email address of the sender.

Type: String

subject​

Filter on the subject of the email.

Type: String

includeBody​

Set to true to fetch decoded email bodies.

Type: boolean

includeAttachments​

Set to true to fetch the base64-encoded email attachments.

Type: boolean

before​

Filter messages received before the specified date.

Type: Date

after​

Filter messages received after the specified date.

Type: Date

label​

The default label is 'INBOX', but can be changed to 'SPAM', 'TRASH' or a custom label. For a full list of built-in labels, see https://developers.google.com/gmail/api/guides/labels?hl=en

Type: String


For more information on WebdriverIO see the homepage.

Welcome! How can I help?

WebdriverIO AI Copilot