diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 821b25e..089a80b 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -5,7 +5,7 @@ on: pull_request: branches: [main, master] schedule: - - cron: '30 9 * * *' # 每天凌晨 12 点执行一次 + - cron: '30 1 * * *' # 每天 上午 9.30 执行一次 workflow_dispatch: # 手动触发 jobs: test: diff --git a/tests/hlk/demo.spec.js b/tests/hlk/demo.spec.js index ad64d74..0fe93d7 100644 --- a/tests/hlk/demo.spec.js +++ b/tests/hlk/demo.spec.js @@ -2,45 +2,42 @@ const { test, expect } = require('./fixtures/common'); const { Customer } = require('./pom/customer'); const { faker } = require('@faker-js/faker/locale/zh_CN'); -test('登录touch和h5,创建顾客购买会员卡,使用顾客账号到h5商城购买货品', async ({ - touchPage, - touchCustomerPage, - h5LoginPage, -}) => { +test.describe + .serial('登录touch和h5,创建顾客购买会员卡,使用顾客账号到h5商城购买货品', async () => { const phone = faker.helpers.fromRegExp(/1[3-9][0-1]{9}/); const customer = new Customer(1, 1, { phone: phone }); + console.log(`${customer.phone}-${customer.username}`); - await touchCustomerPage.createCustomer(customer); - await test.step('在touch页面购买会员卡', async () => { - await touchPage.getByText('去开单').click(); - await touchPage.locator('.more > .icon > svg').click(); - await touchPage.getByText('去开卡').click(); - const $firstCard = touchPage.locator('.memberCard_box').first(); - await $firstCard.click(); - await touchPage.getByRole('button', { name: '去结算' }).click(); - await touchPage.locator('.row').filter({ hasText: '总额' }).locator('.touchIcon').click(); - await touchPage.getByPlaceholder('请输入内容').fill('1000'); - await touchPage.locator('div').filter({ hasText: /^789$/ }).getByRole('button').nth(3).click(); - await touchPage.locator('.paymentInfoItem', { hasText: '现金' }).click(); - await touchPage.getByText('推送消费提醒').click(); - await touchPage.getByLabel('结算签字').uncheck(); - await touchPage.getByRole('button', { name: /结\s算/ }).click(); - await touchPage.getByRole('button', { name: /跳\s过/ }).click(); - await touchPage.close(); + test('登录touch和h5,创建顾客购买会员卡', async ({ touchPage, touchCustomerPage }) => { + await touchCustomerPage.createCustomer(customer); + await test.step('在touch页面购买会员卡', async () => { + await touchPage.getByText('去开单').click(); + await touchPage.locator('.more > .icon > svg').click(); + await touchPage.getByText('去开卡').click(); + const $firstCard = touchPage.locator('.memberCard_box').first(); + await $firstCard.click(); + await touchPage.getByRole('button', { name: '去结算' }).click(); + await touchPage.locator('.row').filter({ hasText: '总额' }).locator('.touchIcon').click(); + await touchPage.getByPlaceholder('请输入内容').fill('1000'); + await touchPage + .locator('div') + .filter({ hasText: /^789$/ }) + .getByRole('button') + .nth(3) + .click(); + await touchPage.locator('.paymentInfoItem', { hasText: '现金' }).click(); + await touchPage.getByText('推送消费提醒').click(); + await touchPage.getByLabel('结算签字').uncheck(); + await touchPage.getByRole('button', { name: /结\s算/ }).click(); + await touchPage.getByRole('button', { name: /跳\s过/ }).click(); + }); }); - await test.step('登录h5,并且商城页面使用会员卡进行购买', async () => { + test('登录h5,并且商城页面使用会员卡进行购买', async ({ h5Page, h5LoginPage }) => { await h5LoginPage.login(customer.phone); await h5Page.locator('.singIn_content > .iconfont').click(); - const element = h5Page.locator('.coupon_content'); - const boundingBox = await element.boundingBox(); - - if (boundingBox) { - const x = boundingBox.x + boundingBox.width / 2; // 元素水平中心 - const y = boundingBox.y - 10; // 元素上侧空白区域 - - await h5Page.mouse.click(x, y); - } + await h5Page.locator('.get_btn').click(); + await h5Page.locator('.back').click(); await h5Page.locator('.bar_item', { hasText: '商城' }).click(); await expect(h5Page.locator('.title', { hasText: '商城' })).toBeVisible(); await h5Page.locator('.li span', { hasText: '全部' }).click();