0

这是我第一次使用 puppeteer 进行的笑话测试。我正在尝试登录一个站点并测试登录后第一页的标题是否正确。

这是在 headful 模式下完成的。

我可以看到登录成功。但是测试失败,vsCode 终端显示如下错误。请指教。

    /**
 * @name Onplan Login
 * @desc Logs in and test for correct page title
 */
const puppeteer = require('puppeteer');


beforeAll(async () => {
    const browser = await puppeteer.launch({
        headless: false,
        devtools: true
    });
    const page = await browser.newPage();

    //await page.setViewport({ width: 4096, height: 1800 })
    await page.goto('https://uat2.onplanapp.com/#/sheet/139');

    await page.waitFor(1000);//was 500
    await page.waitFor('#inputEmail');
    await page.type('#inputEmail', 'xxx@yyy');
    await page.type('#inputPassword', '1111');
    await page.click('button');//Login
    await page.waitForNavigation();
    await page.waitFor(1000);//was 500
    // SELECT COMPANY ON NEXT PAGE
    await page.waitFor('#logn-screenv > form > div.row.logn-screenbody.pb-4.pt-3.px-2 > div:nth-child(2) > div > div > div.css-1hwfws3.custom-scrollbar__value-container > div.css-151xaom-placeholder.custom-scrollbar__placeholder');
    await page.click('#logn-screenv > form > div.row.logn-screenbody.pb-4.pt-3.px-2 > div:nth-child(2) > div > div > div.css-1hwfws3.custom-scrollbar__value-container > div.css-151xaom-placeholder.custom-scrollbar__placeholder');//Login

    // SELECT COMPANY 
    await page.waitFor(300);// was 1000
    // Select dropdown

    //select company option


    await page.click('#react-select-2-option-2'); //Test company
    await page.waitFor(100);//was 1000
    await page.click('button[class="btn btn-block mt-3"]');



})
describe('Login', () => {
    test('should be titled "Onplan"', async () => {
        await page.waitFor(500);//was 1000
        expect.assertions(1);
        await expect(page.$('title').resolves.toEqual('Onplan'));
    });
}, 10000)

afterAll(async () => {
    await browser.close()
})

///////////////// 错误信息 ////////////////// PS F:\Projects\onplan_jest> npm 测试

PS F:\Projects\onplan_jest> npm 测试

onplan_jest@1.0.0 测试 F:\Projects\onplan_jest jest

FAIL ./login.test.js ● 测试套件无法运行

Protocol error: Connection closed. Most likely the page has been closed.

  at Object.assert (node_modules/puppeteer/lib/helper.js:28:15)

测试套件:1 个失败,总共 1 个测试:总共 0 个快照:总共 0 个时间:6.811 秒运行所有测试套件。(节点:501740)UnhandledPromiseRejectionWarning:错误:协议错误(Runtime.callFunctionOn):目标已关闭。
在 F:\Projects\onplan_jest\node_modules\puppeteer\lib\Connection.js:148:63 在 CDPSession.send 处的新 Promise () (F:\Projects\onplan_jest\node_modules\puppeteer\lib\Connection.js:147: 16) 在 ExecutionContext._evaluateInternal (F:\Projects\onplan_jest\node_modules\puppeteer\lib\ExecutionContext.js:77:50) 在 ExecutionContext.evaluateHandle (F:\Projects\onplan_jest\node_modules\puppeteer\lib\ExecutionContext.js: 35:21)在 ExecutionContext。(F:\Projects\onplan_jest\node_modules\puppeteer\lib\helper.js:83:27) 在 ElementHandle.evaluateHandle (F:\Projects\onplan_jest\node_modules\puppeteer\lib\JSHandle.js:43:46) 在 ElementHandle . (F:\Projects\onplan_jest\node_modules\puppeteer\lib\helper.js:83:27) 在 ElementHandle.$ (F:\Projects\onplan_jest\node_modules\puppeteer\lib\JSHandle.js:347:35) 在 ElementHandle . (F:\Projects\onplan_jest\node_modules\puppeteer\lib\helper.js:83:27) -- ASYNC -- 在 ExecutionContext。(F:\Projects\onplan_jest\node_modules\puppeteer\lib\helper.js:82:19) 在 ElementHandle.evaluateHandle (F:\Projects\onplan_jest\node_modules\puppeteer\lib\JSHandle.js:43:46) 在 ElementHandle . (F:\Projects\onplan_jest\node_modules\puppeteer\lib\helper.js:83:27) 在 ElementHandle.$ (F:\Projects\onplan_jest\node_modules\puppeteer\lib\JSHandle.js:347:35) 在 ElementHandle . (F:\Projects\onplan_jest\node_modules\puppeteer\lib\helper.js:83:27) 在 DOMWorld.$ (F:\Projects\onplan_jest\node_modules\puppeteer\lib\DOMWorld.js:96:38) 在 processTicksAndRejections (internal/process/task_queues.js:97:5) -- ASYNC -- 在 Frame。(F:\Projects\onplan_jest\node_modules\puppeteer\lib\helper.js:82:19) 在 Page.$ (F: \Projects\onplan_jest\node_modules\puppeteer\lib\Page.js:219:33) 在 Page.$ (F:\Projects\onplan_jest\node_modules\puppeteer\lib\helper.js:83:27) 在 Object. (F:\Projects\onplan_jest\login.test.js:48:27) (node:501740) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。要在未处理的 Promise 拒绝时终止节点进程,请使用 CLI 标志 此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。要在未处理的 Promise 拒绝时终止节点进程,请使用 CLI 标志 此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。要在未处理的 Promise 拒绝时终止节点进程,请使用 CLI 标志--unhandled-rejections=strict(见https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。(拒绝 ID:1)(节点:501740)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。错误:找不到进程“497896”。测试运行完成后一秒钟,Jest 没有退出。

这通常意味着在您的测试中没有停止异步操作。考虑运行 Jest--detectOpenHandles来解决此问题。在对象。(F:\Projects\onplan_jest\login.test.js:48:27) (node:501740) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。要在未处理的 Promise 拒绝时终止节点进程,请使用 CLI 标志--unhandled-rejections=strict(请参阅https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。(拒绝 ID:1)(节点:501740)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。错误:找不到进程“497896”。测试运行完成后一秒钟,Jest 没有退出。

这通常意味着在您的测试中没有停止异步操作。考虑运行 Jest--detectOpenHandles来解决此问题。(节点:501740)UnhandledPromiseRejectionWarning:TypeError:测试环境被拆除后捕获错误

赋值给常量变量。(节点:501740)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。要在未处理的 Promise 拒绝时终止节点进程,请使用 CLI 标志--unhandled-rejections=strict(请参阅https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。(拒绝编号:3)

///////////// 标题 在此处输入图像描述

4

0 回答 0