控制台测试通过时出错

问题描述 投票:0回答:1

在 Mac 上的 Playwright 中运行此测试:

 import {chromium, test} from "@playwright/test"

 test("login test demo", async() => {

    const browser = await  chromium.launch({
       headless: false
    });
    
   const context = await browser.newContext();
   const page = await context.newPage(); 
   
   (await page).goto ("https://ecommerce-playground.lambdatest.io");
  (await page).hover("//a[@data-toggle='dropdown']//span[contains(.,'My account')]");
   (await page).click("text=Login")

   


 })

在我的控制台中导致此错误:

tests/login.test.ts:3:6 › login test demo

   at tests/login.test.ts:11

   9 |    const page = await context.newPage(); 
  10 |    
> 11 |    (await page).goto ("https://ecommerce-playground.lambdatest.io");
     |                 ^
  12 |   (await page).hover("//a[@data-toggle='dropdown']//span[contains(.,'My account')]");
  13 |    (await page).click("text=Login")
  14 |

    at /Users/dwayne/Documents/Development/Learn-Playwright /tests/login.test.ts:11:17

  1 passed (2.4s)
  1 error was not a part of any test, see above for details
Dwaynes-MacBook-Pro:Learn-Playwright  dwayne$ 
typescript playwright
1个回答
0
投票

无需在测试中创建浏览器。使用预先构建的

page
。如果你想全神贯注地运行,请使用
npx playwright test --headed
或在配置中进行设置。

请勿在

await
调用中使用括号,并避免使用 XPath。

 import {expect, test} from "@playwright/test"

test("login test demo", async ({page}) => {
  await page.goto("https://ecommerce-playground.lambdatest.io");
  await page.getByRole("link", {name: "My account"})
    .evaluate(el => el.click());
  await expect(page).toHaveURL(/\/index\.php\?route=account\/login$/);
});

在实际测试中,您希望避免不受信任的点击,但由于可见性,受信任的点击在这里不起作用,因此我们必须回退。

© www.soinside.com 2019 - 2024. All rights reserved.