0

我正在使用 jest+puppeteer,并且我有一个我想在我的项目中重用的代码。

我使用以下说明: https ://jestjs.io/docs/en/getting-started

//adminLogin2.js
const admLog = function admLog () {
     return
     page.goto(data.config.env.host);
     page.waitForSelector(data.selectors.admin.auth.input_login);
     page.click(data.selectors.admin.auth.input_login);
     page.type(data.selectors.admin.auth.input_login, data.credentials.business_email.login);
     page.click(data.selectors.admin.auth.form_button_first);

    // second step
     page.waitForSelector(data.selectors.admin.auth.input_login_password);
     page.click(data.selectors.admin.auth.input_login_password);
     page.type(data.selectors.admin.auth.input_login_password, data.credentials.business_email.password);
     page.click(data.selectors.admin.auth.form_button_second);
     page.waitForSelector(data.selectors.admin.auth.business_login_button);
     page.click(data.selectors.admin.auth.business_login_button);
     page.waitForSelector(data.selectors.admin.auth.business_body);

}


module.exports = admLog;

//test

const data =   require('../config');
const admLog = require('../struct/Login/adminLogin2');


describe('GetPackage :: Auth', () => {

    it('Admin Email', async () => {
        await admLog();

    });
});

测试可以毫无例外地运行,但没有任何反应,在 headless:false 模式下,Chrome 只是运行并关闭。

应该修复什么?

4

1 回答 1

0
  1. async/awaitadmLog函数中添加。
  2. 删除return语句以防止自动分号插入

所以最终的adminLogin2.js文件应该是这样的:

//adminLogin2.js
const admLog = async function() {
    await page.goto(data.config.env.host);
    await page.waitForSelector(data.selectors.admin.auth.input_login);
    await page.click(data.selectors.admin.auth.input_login);
    await page.type(data.selectors.admin.auth.input_login, data.credentials.business_email.login);
    await page.click(data.selectors.admin.auth.form_button_first);

    // second step
    await page.waitForSelector(data.selectors.admin.auth.input_login_password);
    await page.click(data.selectors.admin.auth.input_login_password);
    await page.type(data.selectors.admin.auth.input_login_password, data.credentials.business_email.password);
    await page.click(data.selectors.admin.auth.form_button_second);
    await page.waitForSelector(data.selectors.admin.auth.business_login_button);
    await page.click(data.selectors.admin.auth.business_login_button);
    await page.waitForSelector(data.selectors.admin.auth.business_body);
}

module.exports = admLog;

于 2019-07-05T16:22:11.167 回答