我通过commands.js下的命令loginByGoogleApi访问我的Gmail帐户,然后获取请求的电子邮件正文并从正文中提取所需的数据,并将其保存在const变量代码中,在我的testFile.cy中输入提取的电子邮件数据(代码) .js。我可以在此之后登录,但 cypress 向我抛出错误cy.type() 失败,因为它针对的是禁用元素。
命令.js
/// <reference types="cypress"
import { parseString } from "xml2js";
Cypress.Commands.add('loginByGoogleApi', () => {
cy.request({
method: 'POST',
url: 'https://www.googleapis.com/oauth2/v4/token',
body: {
grant_type: 'refresh_token',
client_id: Cypress.env('googleClientId'),
client_secret: Cypress.env('googleClientSecret'),
refresh_token: Cypress.env('googleRefreshToken'),
},
}).then(({ body }) => {
const { access_token, id_token } = body
cy.log('Opening emails including code to verify')
cy.request({
method: 'GET',
url: 'https://mail.google.com/mail/feed/atom/verifyCode',
headers: { Authorization: Bearer ${access_token} },
}).then(({ body }) => {
parseString(body, function (err, results) {
let data = JSON.stringify(results)
let …Run Code Online (Sandbox Code Playgroud)